From 1b5c5239b198891e286d8d3c2ef74de36156f885 Mon Sep 17 00:00:00 2001 From: Tyler Wilding Date: Sun, 11 Jul 2021 16:19:03 -0400 Subject: [PATCH 01/57] decomp: mostly finish `aligner` (#686) * decomp: mostly finish `aligner` Issues in aligner/aligner-h that require hand-editing after decompilation * linting --- .vscode/settings.json | 81 ++++-- decompiler/config/all-types.gc | 18 +- .../stack_structures.jsonc | 9 + .../jak1_ntsc_black_label/type_casts.jsonc | 4 + goal_src/engine/anim/aligner-h.gc | 30 +- goal_src/engine/anim/aligner.gc | 265 ++++++++++++++++++ goal_src/engine/anim/joint.gc | 2 + goal_src/engine/collide/collide-shape-h.gc | 1 - goal_src/engine/math/transformq-h.gc | 2 +- .../reference/engine/anim/aligner-h_REF.gc | 30 +- .../reference/engine/anim/aligner_REF.gc | 265 ++++++++++++++++++ .../reference/engine/math/transformq-h_REF.gc | 2 +- test/offline/offline_test_main.cpp | 22 +- 13 files changed, 658 insertions(+), 73 deletions(-) create mode 100644 test/decompiler/reference/engine/anim/aligner_REF.gc diff --git a/.vscode/settings.json b/.vscode/settings.json index f6b26adec6..023166ced3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -11,20 +11,38 @@ "filterFileRegex": ".*ir2\\.asm", "decorations": [ { - "overviewRulerColor": "transparent", // TODO - fix this bug, it extends beyond the line match + "overviewRulerColor": "transparent", "color": "#41f041", "fontWeight": "bold" } ] }, + "()": { + "filterFileRegex": ".*ir2\\.asm", + "decorations": [ + { + "overviewRulerColor": "transparent", + "color": "#c72855" + } + ] + }, "(INFO:.*)": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ { "overviewRulerColor": "transparent", "color": "yellow", - "fontWeight": "bold", - "filterFileRegex": ".*ir2\\.asm" + "fontWeight": "bold" + } + ] + }, + "(sp, -?\\d+ )": { + "filterFileRegex": ".*ir2\\.asm", + "decorations": [ + { + "overviewRulerColor": "transparent", + "color": "#00ff08", + "fontWeight": "bold" } ] }, @@ -57,6 +75,24 @@ } ] }, + "(lwu t9)": { + "filterFileRegex": ".*ir2\\.asm", + "decorations": [ + { + "overviewRulerColor": "transparent", + "color": "magenta" + } + ] + }, + "(jalr)": { + "filterFileRegex": ".*ir2\\.asm", + "decorations": [ + { + "overviewRulerColor": "transparent", + "color": "magenta" + } + ] + }, "(L\\d+)": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ @@ -75,117 +111,130 @@ } ] }, - "(at)": { + "([\\s\\(])(at)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "red" } ] }, - "(gp)": { + "([\\s\\(])(gp)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#64c5e3" } ] }, - "(v0)": { + "([\\s\\(])(v0)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#c6c1e6" } ] }, - "(v1)": { + "([\\s\\(])(v1)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#dae6be" } ] }, - "(s6)": { + "([\\s\\(])(s6)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#41f0b0" } ] }, - "(a0)": { + "([\\s\\(])(a0)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "pink" } ] }, - "(a1)": { + "([\\s\\(])(a1)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#e065bb" } ] }, - "(a2)": { + "([\\s\\(])(a2)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#6dd1a6" } ] }, - "(a3)": { + "([\\s\\(])(a3)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#bad192" } ] }, - "(t0)": { + "([\\s\\(])(t0)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#b56b82" } ] }, - "(t1)": { + "([\\s\\(])(t1)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#6d32ba" } ] }, - "(t2)": { + "([\\s\\(])(t2)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#db9267" } ] }, - "(t3)": { + "([\\s\\(])(t3)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#92db67" diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index 656f88a0db..cb31abfc1e 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -2194,7 +2194,7 @@ (global-y-angle-to-point (_type_ vector) float 23) (relative-y-angle-to-point (_type_ vector) float 24) (TODO-VECTOR-MATH-ISSUES-25 (_type_) float 25) - (dummy-26 () none 26) + (TODO-RENAME-26 (_type_ int vector float) trsqv 26) (get-quaternion (_type_) quaternion 27) ) ) @@ -9672,10 +9672,11 @@ ;; - Types +(declare-type process-drawable process) (deftype align-control (basic) ((flags uint32 :offset-assert 4) - (process process :offset-assert 8) - (frame-group basic :offset-assert 12) + (process process-drawable :offset-assert 8) + (frame-group art-joint-anim :offset-assert 12) (frame-num float :offset-assert 16) (matrix matrix 2 :inline :offset-assert 32) (transform transform 2 :inline :offset-assert 160) @@ -9688,11 +9689,11 @@ :flag-assert #xe00000134 (:methods (new (symbol type process) _type_ :behavior process-drawable 0) - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) + (TODO-RENAME-9 (_type_) transformq 9) + (TODO-RENAME-10 (_type_ int float float float) trsqv 10) + (TODO-RENAME-11 (_type_ int vector int float float) none 11) ;; 3rd arg is unused + (first-transform (_type_) transform 12) + (snd-transform (_type_) transform 13) ) ) @@ -10823,7 +10824,6 @@ :flag-assert #x38000000b8 (:methods (new (symbol type process collide-list-enum) _type_) - (dummy-26 () none 26) (dummy-28 () none 28) (dummy-29 () none 29) (dummy-30 () none 30) diff --git a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc index 82a5c0ad26..f7d04b7e99 100644 --- a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc @@ -540,5 +540,14 @@ [64, "vector"] ], + "(method 9 align-control)": [ + [16, "matrix"], + [80, "quaternion"] + ], + + "(method 10 align-control)": [ + [16, "vector"] + ], + "placeholder-do-not-add-below!": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index 6a8048bbe5..8655fb818d 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -1154,5 +1154,9 @@ [6, "a3", "symbol"] ], + "(method 9 align-control)": [ + [[27, 31], "t9", "(function object object object object)"] + ], + "placeholder-do-not-add-below": [] } diff --git a/goal_src/engine/anim/aligner-h.gc b/goal_src/engine/anim/aligner-h.gc index 144b935e06..134f144a53 100644 --- a/goal_src/engine/anim/aligner-h.gc +++ b/goal_src/engine/anim/aligner-h.gc @@ -7,26 +7,26 @@ (deftype align-control (basic) - ((flags uint32 :offset-assert 4) - (process process :offset-assert 8) - (frame-group basic :offset-assert 12) - (frame-num float :offset-assert 16) - (matrix matrix 2 :inline :offset-assert 32) - (transform transform 2 :inline :offset-assert 160) - (delta transformq :inline :offset-assert 256) - (last-speed float :offset-assert 304) ;; meters - (align transformq :inline :offset 160) + ((flags uint32 :offset-assert 4) + (process process-drawable :offset-assert 8) + (frame-group art-joint-anim :offset-assert 12) + (frame-num float :offset-assert 16) + (matrix matrix 2 :inline :offset-assert 32) + (transform transform 2 :inline :offset-assert 160) + (delta transformq :inline :offset-assert 256) + (last-speed float :offset-assert 304);; meters + (align transformq :inline :offset 160) ) :method-count-assert 14 :size-assert #x134 :flag-assert #xe00000134 (:methods (new (symbol type process) _type_ :behavior process-drawable 0) - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) + (TODO-RENAME-9 (_type_) transformq 9) + (TODO-RENAME-10 (_type_ int float float float) trsqv 10) + (TODO-RENAME-11 (_type_ int vector int float float) none 11) ;; 3rd arg is unused + (first-transform (_type_) transform 12) + (snd-transform (_type_) transform 13) ) ) @@ -39,7 +39,7 @@ (return (the align-control 0)) ) - (set! (-> obj process) proc) + (set! (-> obj process) (the-as process-drawable proc)) obj ) ) diff --git a/goal_src/engine/anim/aligner.gc b/goal_src/engine/anim/aligner.gc index 17ce77543f..dcf9b4b9da 100644 --- a/goal_src/engine/anim/aligner.gc +++ b/goal_src/engine/anim/aligner.gc @@ -5,3 +5,268 @@ ;; name in dgo: aligner ;; dgos: GAME, ENGINE +;; definition for method 9 of type align-control +;; WARN: Unsupported inline assembly instruction kind - [lw ra, return-from-thread(s7)] +;; WARN: Unsupported inline assembly instruction kind - [jr ra] +;; Used lq/sq +(defmethod TODO-RENAME-9 align-control ((obj align-control)) + (local-vars (a0-9 symbol) (s7-0 none) (ra-0 int)) + (with-pp + (let ((s5-0 (-> obj process skel active-channels))) + (dotimes (s4-0 s5-0) + (let* ((a0-3 (-> obj process skel channel s4-0)) + (v1-5 (-> a0-3 frame-group)) + (a0-4 (-> a0-3 command)) + (a1-0 'stack) + (a2-0 (= a0-4 a1-0)) + ) + (cond + ((or a2-0 (begin + (set! a1-0 'stack1) + (= a0-4 a1-0) + ) + ) + ) + (else + ; TODO - support decompiling the return-from-thread + ; TODO - properly decompile the `go`to + ; (when (!= (-> v1-5 type) art-joint-anim) + ; (let + ; ((t9-0 (the-as (function object object object object) enter-state)) + ; (a0-7 "align joint-anim") + ; ) + ; (set! (-> pp next-state) process-drawable-art-error) + ; (t9-0 a0-7 (the-as none a1-0) a2-0) + ; ) + ; (.lw ra-0 return-from-thread s7-0) + ; (.jr ra-0) + ; (nop!) + ; 0 + ; ) + 0 + ) + ) + ) + ) + ) + (let* ((a0-8 (-> obj process skel root-channel 0)) + (v1-16 (-> a0-8 frame-group)) + (f0-0 (-> a0-8 frame-num)) + ) + (= (-> a0-8 num-func) num-func-loop!) + (cond + ((or (not v1-16) (!= (-> obj frame-group) v1-16)) + (set! a0-9 #t) + ) + (else + (if (= (-> a0-8 num-func) num-func-loop!) + (set! a0-9 (< (* (-> a0-8 param 0) (- f0-0 (-> obj frame-num))) 0.0)) + (set! a0-9 (= f0-0 0.0)) + ) + ) + ) + (if a0-9 + (set! (-> obj flags) (logior (-> obj flags) 1)) + (set! (-> obj flags) (logand -2 (the-as int (-> obj flags)))) + ) + (set! (-> obj frame-group) v1-16) + (set! (-> obj frame-num) f0-0) + ) + (mem-copy! + (the-as pointer (-> obj transform 1)) + (the-as pointer (-> obj transform)) + 48 + ) + (quaternion-copy! + (the-as quaternion (-> obj transform 1 rot)) + (-> obj align quat) + ) + (set! (-> obj transform 1 scale quad) (-> obj align scale quad)) + (let* ((a2-5 (-> obj matrix 1)) + (a3-0 (-> obj matrix)) + (v1-19 (-> a3-0 0 vector 0 quad)) + (a0-18 (-> a3-0 0 vector 1 quad)) + (a1-12 (-> a3-0 0 vector 2 quad)) + (a3-1 (-> a3-0 0 vector 3 quad)) + ) + (set! (-> a2-5 vector 0 quad) v1-19) + (set! (-> a2-5 vector 1 quad) a0-18) + (set! (-> a2-5 vector 2 quad) a1-12) + (set! (-> a2-5 vector 3 quad) a3-1) + ) + (let ((s5-1 (-> obj process node-list data 1))) + (cspace<-matrix-no-push-joint! s5-1 (the-as matrix (-> obj process skel))) + (let* ((v1-23 (-> obj matrix)) + (a3-2 (-> s5-1 bone transform)) + (a0-21 (-> a3-2 vector 0 quad)) + (a1-14 (-> a3-2 vector 1 quad)) + (a2-6 (-> a3-2 vector 2 quad)) + (a3-3 (-> a3-2 vector 3 quad)) + ) + (set! (-> v1-23 0 vector 0 quad) a0-21) + (set! (-> v1-23 0 vector 1 quad) a1-14) + (set! (-> v1-23 0 vector 2 quad) a2-6) + (set! (-> v1-23 0 vector 3 quad) a3-3) + ) + (vector*! + (the-as vector (-> obj transform)) + (-> s5-1 bone position) + (-> obj process root scale) + ) + ) + (vector-! + (the-as vector (-> obj delta)) + (the-as vector (-> obj transform)) + (the-as vector (-> obj transform 1)) + ) + (let ((s5-2 (-> obj align scale))) + (set! (-> s5-2 x) (vector-length (the-as vector (-> obj matrix)))) + (set! (-> s5-2 y) (vector-length (-> obj matrix 0 vector 1))) + (set! (-> s5-2 z) (vector-length (-> obj matrix 0 vector 2))) + (set! (-> s5-2 w) 1.0) + ) + (vector-! + (-> obj delta scale) + (-> obj align scale) + (-> obj transform 1 scale) + ) + (let + ((a2-8 + (matrix-inv-scale! (new 'stack-no-clear 'matrix) (-> obj align scale)) + ) + ) + (quaternion-normalize! + (matrix->quaternion + (-> obj align quat) + (matrix*! a2-8 (the-as matrix (-> obj matrix)) a2-8) + ) + ) + ) + (let + ((a1-24 + (quaternion-inverse! + (new 'stack-no-clear 'quaternion) + (the-as quaternion (-> obj transform 1 rot)) + ) + ) + ) + (quaternion-normalize! + (quaternion*! (-> obj delta quat) a1-24 (-> obj align quat)) + ) + ) + (-> obj delta) + ) + ) + +;; definition for method 12 of type align-control +;; INFO: Return type mismatch (inline-array transform) vs transform. +(defmethod first-transform align-control ((obj align-control)) + (the-as transform (-> obj transform)) + ) + +;; definition for method 13 of type align-control +(defmethod snd-transform align-control ((obj align-control)) + (-> obj transform 1) + ) + +;; definition for method 10 of type align-control +(defmethod + TODO-RENAME-10 + align-control + ((obj align-control) (arg0 int) (arg1 float) (arg2 float) (arg3 float)) + (when (zero? (logand (-> obj flags) 1)) + (let* ((a0-1 (-> obj process)) + (t9-0 (method-of-object a0-1 dummy-16)) + (v1-4 (-> obj delta)) + (t1-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> t1-0 x) arg1) + (set! (-> t1-0 y) arg2) + (set! (-> t1-0 z) arg3) + (set! (-> t1-0 w) 1.0) + (t9-0 a0-1 arg0 (the-as (inline-array vector) v1-4) t1-0) + ) + ) + (-> obj process root) + ) + +;; definition for method 26 of type trsqv +(defmethod + TODO-RENAME-26 + trsqv + ((obj trsqv) (arg0 int) (arg1 vector) (arg2 float)) + (let ((gp-0 (-> obj transv))) + (when (nonzero? (logand arg0 4)) + (set! (-> gp-0 x) (-> arg1 x)) + (set! (-> gp-0 z) (-> arg1 z)) + (let + ((f0-4 + (fmin (* (vector-xz-length arg1) (-> *display* frames-per-second)) arg2) + ) + ) + (vector-xz-normalize! gp-0 f0-4) + ) + ) + ) + obj + ) + +;; definition for method 11 of type align-control +;; INFO: Return type mismatch trsqv vs none. +(defmethod + TODO-RENAME-11 + align-control + ((obj align-control) + (arg0 int) + (arg1 vector) + (arg2 int) + (arg3 float) + (arg4 float) + ) + (when (zero? (logand (-> obj flags) 1)) + (let ((s5-0 (-> obj delta))) + (let ((s3-0 (-> obj process root transv))) + (if (nonzero? (logand arg0 2)) + (set! + (-> s3-0 y) + (* (* (-> s5-0 trans y) arg3) (-> *display* frames-per-second)) + ) + ) + (when (nonzero? (logand arg0 4)) + (set! (-> s3-0 x) (-> arg1 x)) + (set! (-> s3-0 z) (-> arg1 z)) + (let + ((f0-8 + (* + (fmin + (vector-xz-length arg1) + (* (vector-xz-length (-> s5-0 trans)) arg4) + ) + (-> *display* frames-per-second) + ) + ) + (t9-2 vector-xz-normalize!) + ) + (set! (-> obj last-speed) f0-8) + (t9-2 s3-0 f0-8) + ) + ) + ) + (if (nonzero? (logand arg0 16)) + (quaternion-normalize! + (quaternion*! + (-> obj process root quat) + (-> obj process root quat) + (-> s5-0 quat) + ) + ) + ) + ) + ) + (-> obj process root) + (none) + ) + + + + diff --git a/goal_src/engine/anim/joint.gc b/goal_src/engine/anim/joint.gc index 0a65261f47..2173d5e3db 100644 --- a/goal_src/engine/anim/joint.gc +++ b/goal_src/engine/anim/joint.gc @@ -5,3 +5,5 @@ ;; name in dgo: joint ;; dgos: GAME, ENGINE +;; TODO - for aligner +(define-extern cspace<-matrix-no-push-joint! (function cspace matrix matrix)) diff --git a/goal_src/engine/collide/collide-shape-h.gc b/goal_src/engine/collide/collide-shape-h.gc index 40d8f28f2d..db9c7449ca 100644 --- a/goal_src/engine/collide/collide-shape-h.gc +++ b/goal_src/engine/collide/collide-shape-h.gc @@ -303,7 +303,6 @@ :flag-assert #x38000000b8 (:methods (new (symbol type process collide-list-enum) _type_) - (dummy-26 () none 26) (dummy-28 () none 28) (dummy-29 () none 29) (dummy-30 () none 30) diff --git a/goal_src/engine/math/transformq-h.gc b/goal_src/engine/math/transformq-h.gc index ce412ab9a8..4989383ae1 100644 --- a/goal_src/engine/math/transformq-h.gc +++ b/goal_src/engine/math/transformq-h.gc @@ -58,7 +58,7 @@ (global-y-angle-to-point (_type_ vector) float 23) (relative-y-angle-to-point (_type_ vector) float 24) (TODO-VECTOR-MATH-ISSUES-25 (_type_) float 25) - (dummy-26 () none 26) + (TODO-RENAME-26 (_type_ int vector float) trsqv 26) (get-quaternion (_type_) quaternion 27) ) ) diff --git a/test/decompiler/reference/engine/anim/aligner-h_REF.gc b/test/decompiler/reference/engine/anim/aligner-h_REF.gc index a15693a4db..a671ec63b3 100644 --- a/test/decompiler/reference/engine/anim/aligner-h_REF.gc +++ b/test/decompiler/reference/engine/anim/aligner-h_REF.gc @@ -3,26 +3,26 @@ ;; definition of type align-control (deftype align-control (basic) - ((flags uint32 :offset-assert 4) - (process process :offset-assert 8) - (frame-group basic :offset-assert 12) - (frame-num float :offset-assert 16) - (matrix matrix 2 :inline :offset-assert 32) - (transform transform 2 :inline :offset-assert 160) - (delta transformq :inline :offset-assert 256) - (last-speed float :offset-assert 304) - (align transformq :inline :offset 160) + ((flags uint32 :offset-assert 4) + (process process-drawable :offset-assert 8) + (frame-group art-joint-anim :offset-assert 12) + (frame-num float :offset-assert 16) + (matrix matrix 2 :inline :offset-assert 32) + (transform transform 2 :inline :offset-assert 160) + (delta transformq :inline :offset-assert 256) + (last-speed float :offset-assert 304) + (align transformq :inline :offset 160) ) :method-count-assert 14 :size-assert #x134 :flag-assert #xe00000134 (:methods (new (symbol type process) _type_ :behavior process-drawable 0) - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) + (TODO-RENAME-9 (_type_) transformq 9) + (TODO-RENAME-10 (_type_ int float float float) trsqv 10) + (TODO-RENAME-11 (_type_ int vector int float float) none 11) + (first-transform (_type_) transform 12) + (snd-transform (_type_) transform 13) ) ) @@ -61,7 +61,7 @@ ) (return (the-as align-control 0)) ) - (set! (-> obj process) arg0) + (set! (-> obj process) (the-as process-drawable arg0)) obj ) ) diff --git a/test/decompiler/reference/engine/anim/aligner_REF.gc b/test/decompiler/reference/engine/anim/aligner_REF.gc new file mode 100644 index 0000000000..71adeb9ac7 --- /dev/null +++ b/test/decompiler/reference/engine/anim/aligner_REF.gc @@ -0,0 +1,265 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for method 9 of type align-control +;; WARN: Unsupported inline assembly instruction kind - [lw ra, return-from-thread(s7)] +;; WARN: Unsupported inline assembly instruction kind - [jr ra] +;; Used lq/sq +(defmethod TODO-RENAME-9 align-control ((obj align-control)) + (local-vars (a0-9 symbol) (s7-0 none) (ra-0 int)) + (with-pp + (let ((s5-0 (-> obj process skel active-channels))) + (dotimes (s4-0 s5-0) + (let* ((a0-3 (-> obj process skel channel s4-0)) + (v1-5 (-> a0-3 frame-group)) + (a0-4 (-> a0-3 command)) + (a1-0 'stack) + (a2-0 (= a0-4 a1-0)) + ) + (cond + ((or a2-0 (begin + (set! a1-0 'stack1) + (= a0-4 a1-0) + ) + ) + ) + (else + (when (!= (-> v1-5 type) art-joint-anim) + (let + ((t9-0 (the-as (function object object object object) enter-state)) + (a0-7 "align joint-anim") + ) + (set! (-> pp next-state) process-drawable-art-error) + (t9-0 a0-7 (the-as none a1-0) a2-0) + ) + (.lw ra-0 return-from-thread s7-0) + (.jr ra-0) + (nop!) + 0 + ) + ) + ) + ) + ) + ) + (let* ((a0-8 (-> obj process skel root-channel 0)) + (v1-16 (-> a0-8 frame-group)) + (f0-0 (-> a0-8 frame-num)) + ) + (= (-> a0-8 num-func) num-func-loop!) + (cond + ((or (not v1-16) (!= (-> obj frame-group) v1-16)) + (set! a0-9 #t) + ) + (else + (if (= (-> a0-8 num-func) num-func-loop!) + (set! a0-9 (< (* (-> a0-8 param 0) (- f0-0 (-> obj frame-num))) 0.0)) + (set! a0-9 (= f0-0 0.0)) + ) + ) + ) + (if a0-9 + (set! (-> obj flags) (logior (-> obj flags) 1)) + (set! (-> obj flags) (logand -2 (the-as int (-> obj flags)))) + ) + (set! (-> obj frame-group) v1-16) + (set! (-> obj frame-num) f0-0) + ) + (mem-copy! + (the-as pointer (-> obj transform 1)) + (the-as pointer (-> obj transform)) + 48 + ) + (quaternion-copy! + (the-as quaternion (-> obj transform 1 rot)) + (-> obj align quat) + ) + (set! (-> obj transform 1 scale quad) (-> obj align scale quad)) + (let* ((a2-5 (-> obj matrix 1)) + (a3-0 (-> obj matrix)) + (v1-19 (-> a3-0 0 vector 0 quad)) + (a0-18 (-> a3-0 0 vector 1 quad)) + (a1-12 (-> a3-0 0 vector 2 quad)) + (a3-1 (-> a3-0 0 vector 3 quad)) + ) + (set! (-> a2-5 vector 0 quad) v1-19) + (set! (-> a2-5 vector 1 quad) a0-18) + (set! (-> a2-5 vector 2 quad) a1-12) + (set! (-> a2-5 vector 3 quad) a3-1) + ) + (let ((s5-1 (-> obj process node-list data 1))) + (cspace<-matrix-no-push-joint! s5-1 (the-as matrix (-> obj process skel))) + (let* ((v1-23 (-> obj matrix)) + (a3-2 (-> s5-1 bone transform)) + (a0-21 (-> a3-2 vector 0 quad)) + (a1-14 (-> a3-2 vector 1 quad)) + (a2-6 (-> a3-2 vector 2 quad)) + (a3-3 (-> a3-2 vector 3 quad)) + ) + (set! (-> v1-23 0 vector 0 quad) a0-21) + (set! (-> v1-23 0 vector 1 quad) a1-14) + (set! (-> v1-23 0 vector 2 quad) a2-6) + (set! (-> v1-23 0 vector 3 quad) a3-3) + ) + (vector*! + (the-as vector (-> obj transform)) + (-> s5-1 bone position) + (-> obj process root scale) + ) + ) + (vector-! + (the-as vector (-> obj delta)) + (the-as vector (-> obj transform)) + (the-as vector (-> obj transform 1)) + ) + (let ((s5-2 (-> obj align scale))) + (set! (-> s5-2 x) (vector-length (the-as vector (-> obj matrix)))) + (set! (-> s5-2 y) (vector-length (-> obj matrix 0 vector 1))) + (set! (-> s5-2 z) (vector-length (-> obj matrix 0 vector 2))) + (set! (-> s5-2 w) 1.0) + ) + (vector-! + (-> obj delta scale) + (-> obj align scale) + (-> obj transform 1 scale) + ) + (let + ((a2-8 + (matrix-inv-scale! (new 'stack-no-clear 'matrix) (-> obj align scale)) + ) + ) + (quaternion-normalize! + (matrix->quaternion + (-> obj align quat) + (matrix*! a2-8 (the-as matrix (-> obj matrix)) a2-8) + ) + ) + ) + (let + ((a1-24 + (quaternion-inverse! + (new 'stack-no-clear 'quaternion) + (the-as quaternion (-> obj transform 1 rot)) + ) + ) + ) + (quaternion-normalize! + (quaternion*! (-> obj delta quat) a1-24 (-> obj align quat)) + ) + ) + (-> obj delta) + ) + ) + +;; definition for method 12 of type align-control +;; INFO: Return type mismatch (inline-array transform) vs transform. +(defmethod first-transform align-control ((obj align-control)) + (the-as transform (-> obj transform)) + ) + +;; definition for method 13 of type align-control +(defmethod snd-transform align-control ((obj align-control)) + (-> obj transform 1) + ) + +;; definition for method 10 of type align-control +(defmethod + TODO-RENAME-10 + align-control + ((obj align-control) (arg0 int) (arg1 float) (arg2 float) (arg3 float)) + (when (zero? (logand (-> obj flags) 1)) + (let* ((a0-1 (-> obj process)) + (t9-0 (method-of-object a0-1 dummy-16)) + (v1-4 (-> obj delta)) + (t1-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> t1-0 x) arg1) + (set! (-> t1-0 y) arg2) + (set! (-> t1-0 z) arg3) + (set! (-> t1-0 w) 1.0) + (t9-0 a0-1 arg0 (the-as (inline-array vector) v1-4) t1-0) + ) + ) + (-> obj process root) + ) + +;; definition for method 26 of type trsqv +(defmethod + TODO-RENAME-26 + trsqv + ((obj trsqv) (arg0 int) (arg1 vector) (arg2 float)) + (let ((gp-0 (-> obj transv))) + (when (nonzero? (logand arg0 4)) + (set! (-> gp-0 x) (-> arg1 x)) + (set! (-> gp-0 z) (-> arg1 z)) + (let + ((f0-4 + (fmin (* (vector-xz-length arg1) (-> *display* frames-per-second)) arg2) + ) + ) + (vector-xz-normalize! gp-0 f0-4) + ) + ) + ) + obj + ) + +;; definition for method 11 of type align-control +;; INFO: Return type mismatch trsqv vs none. +(defmethod + TODO-RENAME-11 + align-control + ((obj align-control) + (arg0 int) + (arg1 vector) + (arg2 int) + (arg3 float) + (arg4 float) + ) + (when (zero? (logand (-> obj flags) 1)) + (let ((s5-0 (-> obj delta))) + (let ((s3-0 (-> obj process root transv))) + (if (nonzero? (logand arg0 2)) + (set! + (-> s3-0 y) + (* (* (-> s5-0 trans y) arg3) (-> *display* frames-per-second)) + ) + ) + (when (nonzero? (logand arg0 4)) + (set! (-> s3-0 x) (-> arg1 x)) + (set! (-> s3-0 z) (-> arg1 z)) + (let + ((f0-8 + (* + (fmin + (vector-xz-length arg1) + (* (vector-xz-length (-> s5-0 trans)) arg4) + ) + (-> *display* frames-per-second) + ) + ) + (t9-2 vector-xz-normalize!) + ) + (set! (-> obj last-speed) f0-8) + (t9-2 s3-0 f0-8) + ) + ) + ) + (if (nonzero? (logand arg0 16)) + (quaternion-normalize! + (quaternion*! + (-> obj process root quat) + (-> obj process root quat) + (-> s5-0 quat) + ) + ) + ) + ) + ) + (-> obj process root) + (none) + ) + + + + diff --git a/test/decompiler/reference/engine/math/transformq-h_REF.gc b/test/decompiler/reference/engine/math/transformq-h_REF.gc index 67527fd69f..ccbc5baf85 100644 --- a/test/decompiler/reference/engine/math/transformq-h_REF.gc +++ b/test/decompiler/reference/engine/math/transformq-h_REF.gc @@ -71,7 +71,7 @@ (global-y-angle-to-point (_type_ vector) float 23) (relative-y-angle-to-point (_type_ vector) float 24) (TODO-VECTOR-MATH-ISSUES-25 (_type_) float 25) - (dummy-26 () none 26) + (TODO-RENAME-26 (_type_ int vector float) trsqv 26) (get-quaternion (_type_) quaternion 27) ) ) diff --git a/test/offline/offline_test_main.cpp b/test/offline/offline_test_main.cpp index dfea7700f0..0908d36ef9 100644 --- a/test/offline/offline_test_main.cpp +++ b/test/offline/offline_test_main.cpp @@ -88,11 +88,7 @@ const std::unordered_set g_functions_expected_to_reject = { const std::unordered_set g_functions_to_skip_compiling = { /// GCOMMON // these functions are not implemented by the compiler in OpenGOAL, but are in GOAL. - "abs", - "ash", - "min", - "max", - "lognor", + "abs", "ash", "min", "max", "lognor", // weird PS2 specific debug registers: "breakpoint-range-set!", // inline assembly @@ -106,8 +102,7 @@ const std::unordered_set g_functions_to_skip_compiling = { "enter-state", // stack pointer asm /// MATH - "rand-vu-init", - "rand-vu", + "rand-vu-init", "rand-vu", "rand-vu-nostep", // random hardware // trig @@ -127,19 +122,14 @@ const std::unordered_set g_functions_to_skip_compiling = { "disasm-dma-list", // missing a single cast :( // math camera - "transform-point-vector!", - "transform-point-qword!", - "transform-point-vector-scale!", + "transform-point-vector!", "transform-point-qword!", "transform-point-vector-scale!", // display-h "put-draw-env", // vector // bad decisions on float vs int128 - "vector-degf", - "vector-degmod", - "vector-deg-diff", - "vector-degi", + "vector-degf", "vector-degmod", "vector-deg-diff", "vector-degi", // geometry "calculate-basis-functions-vector!", // asm requiring manual rewrite @@ -162,7 +152,9 @@ const std::unordered_set g_functions_to_skip_compiling = { "ripple-execute", "get-task-status", -}; + + // aligner - return-from-thread, currently not supported + "(method 9 align-control)"}; // default location for the data. It can be changed with a command line argument. std::string g_iso_data_path = ""; From d262dac40ddcfb35325f860a8084a091cf23ae85 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 11 Jul 2021 20:20:20 +0000 Subject: [PATCH 02/57] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/{about.c7b7de46.js => about.acc7b95d.js} | 4 ++-- docs/js/{about.c7b7de46.js.map => about.acc7b95d.js.map} | 2 +- docs/js/{app.5b8d0e0d.js => app.87be5c69.js} | 4 ++-- docs/js/{app.5b8d0e0d.js.map => app.87be5c69.js.map} | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename docs/js/{about.c7b7de46.js => about.acc7b95d.js} (99%) rename docs/js/{about.c7b7de46.js.map => about.acc7b95d.js.map} (99%) rename docs/js/{app.5b8d0e0d.js => app.87be5c69.js} (97%) rename docs/js/{app.5b8d0e0d.js.map => app.87be5c69.js.map} (98%) diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index d58cd63ac3..4983e71e39 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 103209, + "value": 103475, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index cf2f882df0..07487733f9 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.c7b7de46.js b/docs/js/about.acc7b95d.js similarity index 99% rename from docs/js/about.c7b7de46.js rename to docs/js/about.acc7b95d.js index 906ebb2b46..b5ecd55978 100644 --- a/docs/js/about.c7b7de46.js +++ b/docs/js/about.acc7b95d.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":103209,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.c7b7de46.js.map \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":103475,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.acc7b95d.js.map \ No newline at end of file diff --git a/docs/js/about.c7b7de46.js.map b/docs/js/about.acc7b95d.js.map similarity index 99% rename from docs/js/about.c7b7de46.js.map rename to docs/js/about.acc7b95d.js.map index 35a72d6299..637a631726 100644 --- a/docs/js/about.c7b7de46.js.map +++ b/docs/js/about.acc7b95d.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?b24d","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.c7b7de46.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?b24d","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.acc7b95d.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.5b8d0e0d.js b/docs/js/app.87be5c69.js similarity index 97% rename from docs/js/app.5b8d0e0d.js rename to docs/js/app.87be5c69.js index 8e291f0f41..cffa79e753 100644 --- a/docs/js/app.5b8d0e0d.js +++ b/docs/js/app.87be5c69.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?7eb4","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.87be5c69.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"acc7b95d\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file From 656489e9424d65e4575e5f706720cc44b2196668 Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Sun, 11 Jul 2021 16:35:25 -0400 Subject: [PATCH 03/57] [decomp] Clean up - part 2 (#687) * temp * temp2 * basic case support * working for or without else * support more cases * clean up to drawable headers * ocean * format json --- common/goos/PrettyPrinter.cpp | 54 +- decompiler/Function/CfgVtx.cpp | 12 + decompiler/IR2/AtomicOpTypeAnalysis.cpp | 8 + decompiler/IR2/Form.cpp | 101 + decompiler/IR2/Form.h | 21 + decompiler/IR2/FormExpressionAnalysis.cpp | 15 +- decompiler/IR2/bitfields.cpp | 4 +- decompiler/ObjectFile/ObjectFileDB.h | 4 +- decompiler/ObjectFile/ObjectFileDB_IR2.cpp | 11 +- decompiler/analysis/insert_lets.cpp | 180 +- decompiler/analysis/type_analysis.cpp | 6 + decompiler/config/all-types.gc | 151 +- .../config/jak1_ntsc_black_label/hacks.jsonc | 15 +- .../jak1_ntsc_black_label/label_types.jsonc | 69 +- .../stack_structures.jsonc | 22 +- .../jak1_ntsc_black_label/type_casts.jsonc | 22 +- .../jak1_ntsc_black_label/var_names.jsonc | 63 +- decompiler/util/DecompilerTypeSystem.h | 2 +- decompiler/util/TP_Type.h | 7 +- decompiler/util/data_decompile.cpp | 178 +- docs/markdown/progress-notes/changelog.md | 4 +- game/common/game_common_types.h | 13 + game/kernel/kboot.cpp | 1 + game/kernel/kboot.h | 17 - game/kernel/kdgo.cpp | 2 +- game/kernel/kmemcard.cpp | 20 +- game/kernel/kmemcard.h | 5 - game/kernel/kscheme.cpp | 3 +- game/overlord/srpc.cpp | 11 + game/overlord/srpc.h | 5 + game/sce/libscf.cpp | 2 +- goal_src/engine/anim/mspace-h.gc | 4 +- goal_src/engine/camera/math-camera-h.gc | 4 + goal_src/engine/camera/math-camera.gc | 1 + goal_src/engine/data/art-h.gc | 2 +- goal_src/engine/debug/debug.gc | 14 +- goal_src/engine/debug/memory-usage-h.gc | 115 +- goal_src/engine/debug/menu.gc | 10 +- goal_src/engine/dma/dma-bucket.gc | 2 +- goal_src/engine/dma/dma-h.gc | 3 +- goal_src/engine/draw/draw-node-h.gc | 13 + goal_src/engine/draw/drawable-ambient-h.gc | 28 +- goal_src/engine/draw/drawable-h.gc | 8 +- goal_src/engine/engine/connect.gc | 2 + goal_src/engine/game/game-info-h.gc | 6 +- goal_src/engine/game/game-info.gc | 4 +- goal_src/engine/game/main-h.gc | 9 +- goal_src/engine/game/main.gc | 1047 +- goal_src/engine/game/settings-h.gc | 32 +- goal_src/engine/game/settings.gc | 445 +- goal_src/engine/game/task/hint-control.gc | 58 +- goal_src/engine/game/video.gc | 40 +- goal_src/engine/gfx/capture.gc | 3 + goal_src/engine/gfx/font-h.gc | 3 + goal_src/engine/gfx/generic/generic.gc | 2 +- goal_src/engine/gfx/hw/display.gc | 32 +- goal_src/engine/gfx/hw/gs.gc | 33 +- goal_src/engine/gfx/lights-h.gc | 3 + goal_src/engine/gfx/ocean/ocean-h.gc | 10 +- goal_src/engine/gfx/ocean/ocean-tables.gc | 22201 +++++++++------- goal_src/engine/gfx/shadow/shadow-cpu.gc | 3 + goal_src/engine/gfx/texture-h.gc | 2 +- goal_src/engine/gfx/texture.gc | 42 +- goal_src/engine/gfx/tfrag/tfrag-h.gc | 2 +- goal_src/engine/gfx/vis/bsp-h.gc | 3 +- goal_src/engine/level/level-h.gc | 18 +- goal_src/engine/level/level.gc | 36 +- goal_src/engine/load/file-io.gc | 71 +- goal_src/engine/target/joint-mod-h.gc | 20 +- goal_src/engine/ui/credits.gc | 16 +- goal_src/engine/ui/progress-h.gc | 6 +- goal_src/engine/ui/progress/progress.gc | 8 +- goal_src/engine/ui/text-h.gc | 4 +- goal_src/engine/ui/text.gc | 131 +- goal_src/kernel-defs.gc | 15 +- goal_src/kernel/gkernel.gc | 11 +- goal_src/kernel/gstate.gc | 9 +- goalc/compiler/Compiler.h | 9 +- goalc/compiler/compilation/Static.cpp | 9 + goalc/compiler/compilation/Type.cpp | 76 +- .../reference/engine/anim/mspace-h_REF.gc | 5 +- .../engine/collide/collide-shape-h_REF.gc | 8 +- .../reference/engine/data/art-h_REF.gc | 3 +- .../reference/engine/debug/menu_REF.gc | 18 +- .../reference/engine/dma/dma-bucket_REF.gc | 6 +- .../reference/engine/draw/draw-node-h_REF.gc | 10 +- .../engine/draw/drawable-ambient-h_REF.gc | 4 +- .../reference/engine/draw/drawable-h_REF.gc | 2 +- .../reference/engine/game/fact-h_REF.gc | 64 +- .../reference/engine/game/game-info-h_REF.gc | 4 +- .../reference/engine/game/settings-h_REF.gc | 2 +- .../reference/engine/game/settings_REF.gc | 354 +- .../engine/game/task/hint-control_REF.gc | 19 +- .../engine/game/task/task-control_REF.gc | 72 +- .../reference/engine/game/video_REF.gc | 40 +- .../reference/engine/geometry/geometry_REF.gc | 4 - .../engine/gfx/generic/generic_REF.gc | 2 +- .../reference/engine/gfx/hw/display_REF.gc | 16 +- .../reference/engine/gfx/hw/gs_REF.gc | 82 +- .../reference/engine/gfx/ocean/ocean-h_REF.gc | 9 +- .../reference/engine/gfx/texture-h_REF.gc | 2 +- .../reference/engine/gfx/texture_REF.gc | 97 +- .../reference/engine/gfx/tfrag/tfrag-h_REF.gc | 5 +- .../reference/engine/gfx/vis/bsp-h_REF.gc | 2 +- .../reference/engine/level/level-h_REF.gc | 12 +- .../reference/engine/load/file-io_REF.gc | 19 +- .../engine/target/joint-mod-h_REF.gc | 32 +- .../reference/engine/target/pat-h_REF.gc | 210 +- .../reference/engine/ui/credits_REF.gc | 10 +- .../reference/engine/ui/progress-h_REF.gc | 2 +- .../reference/kernel/gkernel_REF.gc | 179 +- .../decompiler/reference/kernel/gstate_REF.gc | 8 +- test/decompiler/test_FormExpressionBuild2.cpp | 16 +- .../with_game/test-array-ref-static.gc | 27 + test/goalc/test_with_game.cpp | 6 + test/offline/offline_test_main.cpp | 44 +- 116 files changed, 15692 insertions(+), 11356 deletions(-) create mode 100644 game/common/game_common_types.h create mode 100644 test/goalc/source_templates/with_game/test-array-ref-static.gc diff --git a/common/goos/PrettyPrinter.cpp b/common/goos/PrettyPrinter.cpp index a753a87e3c..b7499ce82a 100644 --- a/common/goos/PrettyPrinter.cpp +++ b/common/goos/PrettyPrinter.cpp @@ -444,6 +444,31 @@ PrettyPrinterNode* getNextListOrEmptyListOnLine(PrettyPrinterNode* start) { return nullptr; } +PrettyPrinterNode* get_case_start_case(PrettyPrinterNode* start) { + auto node = start->next; + while (node) { + switch (node->tok->kind) { + case FormToken::TokenKind::OPEN_PAREN: + goto loop_end; + break; + case FormToken::TokenKind::WHITESPACE: + break; + default: + return getNextListOnLine(start); + } + node = node->next; + } +loop_end: + node = node->paren; + while (node && (!node->tok || node->tok->kind != FormToken::TokenKind::OPEN_PAREN)) { + node = node->next; + } + if (!node) { + return getNextListOnLine(start); + } + return node; +} + /*! * Get the first open paren on the current line (can start in the middle of line, inclusive of * start) nullptr if there's no open parens on the rest of this line @@ -678,8 +703,15 @@ void insertSpecialBreaks(NodePool& pool, PrettyPrinterNode* node) { } } - if (name == "cond") { - auto* start_of_case = getNextListOnLine(node); + if (name == "cond" || name == "case") { + PrettyPrinterNode* start_of_case; + if (name == "cond") { + start_of_case = getNextListOnLine(node); + } else { + start_of_case = get_case_start_case(node); + insertNewlineBefore(pool, start_of_case, 0); + } + while (true) { // let's break this case: assert(start_of_case->tok->kind == FormToken::TokenKind::OPEN_PAREN); @@ -708,7 +740,23 @@ void insertSpecialBreaks(NodePool& pool, PrettyPrinterNode* node) { } // break cond into a multi-line always - breakList(pool, node->paren); + if (name == "case") { + auto next = node->next; + if (next) { + next = next->next; + } + if (next->tok && next->tok->kind == FormToken::TokenKind::OPEN_PAREN) { + next = next->paren; + if (next) { + next = next->next; + } + } + if (next) { + // insertNewlineAfter(pool, next, 0); + } + } else { + breakList(pool, node->paren); + } } } } diff --git a/decompiler/Function/CfgVtx.cpp b/decompiler/Function/CfgVtx.cpp index 4c7b6d1542..3fa0a43ab1 100644 --- a/decompiler/Function/CfgVtx.cpp +++ b/decompiler/Function/CfgVtx.cpp @@ -280,6 +280,7 @@ goos::Object UntilLoop_single::to_form() const { } int UntilLoop_single::get_first_block_id() const { + return block->get_first_block_id(); assert(false); return -1; } @@ -575,6 +576,10 @@ bool ControlFlowGraph::is_goto_not_end_and_unreachable(CfgVtx* b0, CfgVtx* b1) { return false; } + if (b0->end_branch.asm_branch || b1->end_branch.asm_branch) { + return false; + } + // b0 should be an always branch, not likely. if (!b0->end_branch.has_branch || !b0->end_branch.branch_always || b0->end_branch.branch_likely) { return false; @@ -903,6 +908,9 @@ bool ControlFlowGraph::find_infinite_continue() { fmt::print("Considering {} as an infinite continue:\n", b0->to_string()); + if (b0->end_branch.asm_branch) { + return true; + } if (dest_block >= my_block) { fmt::print(" Rejecting because destination block {} comes after me {}\n", dest_block, my_block); @@ -1041,6 +1049,10 @@ bool ControlFlowGraph::is_sequence(CfgVtx* b0, CfgVtx* b1, bool allow_self_loops if (!b0 || !b1) return false; + // if (b0->end_branch.asm_branch || b1->end_branch.asm_branch) { + // return false; + // } + if (b0->next != b1) { return false; } diff --git a/decompiler/IR2/AtomicOpTypeAnalysis.cpp b/decompiler/IR2/AtomicOpTypeAnalysis.cpp index 4c7d073fbf..2f07f8a60f 100644 --- a/decompiler/IR2/AtomicOpTypeAnalysis.cpp +++ b/decompiler/IR2/AtomicOpTypeAnalysis.cpp @@ -554,6 +554,14 @@ TP_Type SimpleExpression::get_type_int2(const TypeState& input, return TP_Type::make_from_ts(arg1_type.typespec()); } + if (m_kind == Kind::ADD && tc(dts, TypeSpec("structure"), arg0_type) && + arg1_type.is_integer_constant()) { + auto type_info = dts.ts.lookup_type(arg0_type.typespec()); + if (type_info->get_size_in_memory() == arg1_type.get_integer_constant()) { + return TP_Type::make_from_ts(arg0_type.typespec()); + } + } + if (tc(dts, TypeSpec("structure"), arg1_type) && !m_args[0].is_int() && is_int_or_uint(dts, arg0_type)) { if (arg1_type.typespec() == TypeSpec("symbol") && diff --git a/decompiler/IR2/Form.cpp b/decompiler/IR2/Form.cpp index 8c56a3b8fc..f5553c80a3 100644 --- a/decompiler/IR2/Form.cpp +++ b/decompiler/IR2/Form.cpp @@ -1363,6 +1363,107 @@ void CondNoElseElement::get_modified_regs(RegSet& regs) const { } } +CaseElement::CaseElement(Form* value, const std::vector& entries, Form* else_body) + : m_value(value), m_entries(entries), m_else_body(else_body) { + m_value->parent_element = this; + for (auto& entry : m_entries) { + for (auto& val : entry.vals) { + val->parent_element = this; + } + entry.body->parent_element = this; + } + if (m_else_body) { + m_else_body->parent_element = this; + } +} + +goos::Object CaseElement::to_form_internal(const Env& env) const { + std::vector list; + list.push_back(pretty_print::to_symbol("case")); + list.push_back(m_value->to_form(env)); + for (auto& e : m_entries) { + std::vector entry; + + // cases + std::vector cases; + for (auto& val : e.vals) { + cases.push_back(val->to_form(env)); + } + entry.push_back(pretty_print::build_list(cases)); + + // body + e.body->inline_forms(entry, env); + list.push_back(pretty_print::build_list(entry)); + } + + if (m_else_body) { + std::vector entry; + entry.push_back(pretty_print::to_symbol("else")); + m_else_body->inline_forms(entry, env); + list.push_back(pretty_print::build_list(entry)); + } + return pretty_print::build_list(list); +} + +void CaseElement::apply(const std::function& f) { + f(this); + m_value->apply(f); + for (auto& e : m_entries) { + for (auto& val : e.vals) { + val->apply(f); + } + e.body->apply(f); + } + + if (m_else_body) { + m_else_body->apply(f); + } +} + +void CaseElement::apply_form(const std::function& f) { + m_value->apply_form(f); + for (auto& e : m_entries) { + for (auto& val : e.vals) { + val->apply_form(f); + } + e.body->apply_form(f); + } + + if (m_else_body) { + m_else_body->apply_form(f); + } +} + +void CaseElement::collect_vars(RegAccessSet& vars, bool recursive) const { + if (recursive) { + m_value->collect_vars(vars, recursive); + for (auto& e : m_entries) { + for (auto& val : e.vals) { + val->collect_vars(vars, recursive); + } + e.body->collect_vars(vars, recursive); + } + + if (m_else_body) { + m_else_body->collect_vars(vars, recursive); + } + } +} + +void CaseElement::get_modified_regs(RegSet& regs) const { + m_value->get_modified_regs(regs); + for (auto& e : m_entries) { + for (auto& val : e.vals) { + val->get_modified_regs(regs); + } + e.body->get_modified_regs(regs); + } + + if (m_else_body) { + m_else_body->get_modified_regs(regs); + } +} + ///////////////////////////// // AbsElement ///////////////////////////// diff --git a/decompiler/IR2/Form.h b/decompiler/IR2/Form.h index 0c8f2f8957..0eae101166 100644 --- a/decompiler/IR2/Form.h +++ b/decompiler/IR2/Form.h @@ -842,6 +842,27 @@ class CondNoElseElement : public FormElement { bool allow_in_if() const override { return false; } }; +class CaseElement : public FormElement { + public: + struct Entry { + std::vector vals; + Form* body = nullptr; + }; + + CaseElement(Form* value, const std::vector& entries, Form* else_body); + goos::Object to_form_internal(const Env& env) const override; + void apply(const std::function& f) override; + void apply_form(const std::function& f) override; + void collect_vars(RegAccessSet& vars, bool recursive) const override; + void get_modified_regs(RegSet& regs) const override; + bool allow_in_if() const override { return false; } + + private: + Form* m_value = nullptr; + std::vector m_entries; + Form* m_else_body = nullptr; // may be nullptr, if no else. +}; + /*! * Represents a (abs x) expression. */ diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index 44689124a5..19edd46998 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -883,6 +883,17 @@ void SimpleExpressionElement::update_from_stack_add_i(const Env& env, } auto arg0_type = env.get_types_before_op(m_my_idx).get(m_expr.get_arg(0).var().reg()); + + if (env.dts->ts.tc(TypeSpec("structure"), arg0_type.typespec()) && m_expr.get_arg(1).is_int()) { + auto type_info = env.dts->ts.lookup_type(arg0_type.typespec()); + if (type_info->get_size_in_memory() == m_expr.get_arg(1).get_int()) { + auto new_form = pool.alloc_element( + GenericOperator::make_fixed(FixedOperatorKind::ADDITION_PTR), args.at(0), args.at(1)); + result->push_back(new_form); + return; + } + } + if ((arg0_i && arg1_i) || (arg0_u && arg1_u)) { auto new_form = pool.alloc_element( GenericOperator::make_fixed(FixedOperatorKind::ADDITION), args.at(0), args.at(1)); @@ -2390,8 +2401,8 @@ void FunctionCallElement::update_from_stack(const Env& env, if (tp_type.kind != TP_Type::Kind::NON_VIRTUAL_METHOD) { throw std::runtime_error(fmt::format( "Method internal mismatch. METHOD_OF_TYPE operator didn't get a NON_VIRTUAL_METHOD " - "type. Got {} instead.", - tp_type.print())); + "type. Got {} instead. {} {}", + tp_type.print(), name, match_result.maps.forms.at(type_source)->to_string(env))); } } diff --git a/decompiler/IR2/bitfields.cpp b/decompiler/IR2/bitfields.cpp index 569f400e00..c7777c316b 100644 --- a/decompiler/IR2/bitfields.cpp +++ b/decompiler/IR2/bitfields.cpp @@ -625,8 +625,8 @@ Form* cast_sound_name(FormPool& pool, const Env& env, Form* in) { auto hi = mr.maps.forms.at(1); auto lo = mr.maps.forms.at(0); - auto hi_int = get_goal_integer_constant(hi, env); - auto lo_int = get_goal_integer_constant(lo, env); + auto hi_int = get_goal_integer_constant(strip_int_or_uint_cast(hi), env); + auto lo_int = get_goal_integer_constant(strip_int_or_uint_cast(lo), env); if (!hi_int || !lo_int) { return nullptr; } diff --git a/decompiler/ObjectFile/ObjectFileDB.h b/decompiler/ObjectFile/ObjectFileDB.h index b4e842749e..96a4f44ee3 100644 --- a/decompiler/ObjectFile/ObjectFileDB.h +++ b/decompiler/ObjectFile/ObjectFileDB.h @@ -63,7 +63,9 @@ class ObjectFileDB { bool print_hex); void analyze_functions_ir1(const Config& config); - void analyze_functions_ir2(const std::string& output_dir, const Config& config); + void analyze_functions_ir2(const std::string& output_dir, + const Config& config, + bool skip_debug_output = false); void ir2_top_level_pass(const Config& config); void ir2_stack_spill_slot_pass(); void ir2_basic_block_pass(const Config& config); diff --git a/decompiler/ObjectFile/ObjectFileDB_IR2.cpp b/decompiler/ObjectFile/ObjectFileDB_IR2.cpp index 01280eb11d..7943ba1611 100644 --- a/decompiler/ObjectFile/ObjectFileDB_IR2.cpp +++ b/decompiler/ObjectFile/ObjectFileDB_IR2.cpp @@ -30,7 +30,9 @@ namespace decompiler { * At this point, we assume that the files are loaded and we've run find_code to locate all * functions, but nothing else. */ -void ObjectFileDB::analyze_functions_ir2(const std::string& output_dir, const Config& config) { +void ObjectFileDB::analyze_functions_ir2(const std::string& output_dir, + const Config& config, + bool skip_debug_output) { lg::info("Using IR2 analysis..."); lg::info("Processing top-level functions..."); ir2_top_level_pass(config); @@ -55,8 +57,11 @@ void ObjectFileDB::analyze_functions_ir2(const std::string& output_dir, const Co lg::info("Initial structuring..."); ir2_cfg_build_pass(); - lg::info("Storing temporary form result..."); - ir2_store_current_forms(); + if (!skip_debug_output) { + lg::info("Storing temporary form result..."); + ir2_store_current_forms(); + } + lg::info("Expression building..."); ir2_build_expressions(config); lg::info("Re-writing inline asm instructions..."); diff --git a/decompiler/analysis/insert_lets.cpp b/decompiler/analysis/insert_lets.cpp index aba26c6830..ff390f8db0 100644 --- a/decompiler/analysis/insert_lets.cpp +++ b/decompiler/analysis/insert_lets.cpp @@ -36,7 +36,7 @@ If the previous let variables appear in the definition of new one, make the let */ namespace { -std::vector path_up_tree(Form* in, const Env& env) { +std::vector path_up_tree(Form* in, const Env&) { std::vector path; while (in) { @@ -357,6 +357,174 @@ FormElement* rewrite_empty_let(LetElement* in, const Env&, FormPool&) { return in->entries().at(0).src->try_as_single_element(); } +Form* strip_truthy(Form* in) { + auto as_ge = in->try_as_element(); + if (as_ge) { + if (as_ge->op().kind() == GenericOperator::Kind::CONDITION_OPERATOR && + as_ge->op().condition_kind() == IR2_Condition::Kind::TRUTHY) { + in = as_ge->elts().at(0); + } + } + return in; +} + +ShortCircuitElement* get_or(Form* in) { + // strip off truthy + in = strip_truthy(in); + + return in->try_as_element(); +} + +FormElement* rewrite_as_case_no_else(LetElement* in, const Env& env, FormPool& pool) { + if (in->entries().size() != 1) { + return nullptr; + } + + auto* cond = in->body()->try_as_element(); + if (!cond) { + return nullptr; + } + + auto case_var = in->entries().at(0).dest; + auto& case_var_uses = env.get_use_def_info(case_var); + int found_uses = 0; + if (case_var_uses.def_count() != 1) { + return nullptr; + } + auto case_var_name = env.get_variable_name(case_var); + + std::vector entries; + + for (auto& e : cond->entries) { + // first, lets see if its just (= case_var ) + auto single_matcher = Matcher::op(GenericOpMatcher::fixed(FixedOperatorKind::EQ), + {Matcher::any_reg(0), Matcher::any(1)}); + + auto single_matcher_result = match(single_matcher, e.condition); + + Form* single_value = nullptr; + if (single_matcher_result.matched) { + auto var_name = env.get_variable_name(*single_matcher_result.maps.regs.at(0)); + if (var_name == case_var_name) { + single_value = single_matcher_result.maps.forms.at(1); + } + } + + if (single_value) { + entries.push_back({{single_value}, e.body}); + found_uses++; + continue; + } + + // try as an or (or (= case_var ) ...) + auto* as_or = get_or(e.condition); + if (!as_or) { + return nullptr; + } + + CaseElement::Entry current_entry; + for (auto& or_case : as_or->entries) { + auto or_single_matcher_result = match(single_matcher, strip_truthy(or_case.condition)); + if (!or_single_matcher_result.matched) { + return nullptr; + } + auto var_name = env.get_variable_name(*or_single_matcher_result.maps.regs.at(0)); + if (var_name != case_var_name) { + return nullptr; + } + found_uses++; + current_entry.vals.push_back(or_single_matcher_result.maps.forms.at(1)); + } + current_entry.body = e.body; + entries.push_back(current_entry); + + // no match + // return nullptr; + } + + if (found_uses != case_var_uses.use_count()) { + return nullptr; + } + + return pool.alloc_element(in->entries().at(0).src, entries, nullptr); + return nullptr; +} + +FormElement* rewrite_as_case_with_else(LetElement* in, const Env& env, FormPool& pool) { + if (in->entries().size() != 1) { + return nullptr; + } + + auto* cond = in->body()->try_as_element(); + if (!cond) { + return nullptr; + } + + auto case_var = in->entries().at(0).dest; + auto& case_var_uses = env.get_use_def_info(case_var); + int found_uses = 0; + if (case_var_uses.def_count() != 1) { + return nullptr; + } + auto case_var_name = env.get_variable_name(case_var); + + std::vector entries; + + for (auto& e : cond->entries) { + // first, lets see if its just (= case_var ) + auto single_matcher = Matcher::op(GenericOpMatcher::fixed(FixedOperatorKind::EQ), + {Matcher::any_reg(0), Matcher::any(1)}); + + auto single_matcher_result = match(single_matcher, e.condition); + + Form* single_value = nullptr; + if (single_matcher_result.matched) { + auto var_name = env.get_variable_name(*single_matcher_result.maps.regs.at(0)); + if (var_name == case_var_name) { + single_value = single_matcher_result.maps.forms.at(1); + } + } + + if (single_value) { + entries.push_back({{single_value}, e.body}); + found_uses++; + continue; + } + + // try as an or (or (= case_var ) ...) + auto* as_or = get_or(e.condition); + if (!as_or) { + return nullptr; + } + + CaseElement::Entry current_entry; + for (auto& or_case : as_or->entries) { + auto or_single_matcher_result = match(single_matcher, strip_truthy(or_case.condition)); + if (!or_single_matcher_result.matched) { + return nullptr; + } + auto var_name = env.get_variable_name(*or_single_matcher_result.maps.regs.at(0)); + if (var_name != case_var_name) { + return nullptr; + } + found_uses++; + current_entry.vals.push_back(or_single_matcher_result.maps.forms.at(1)); + } + current_entry.body = e.body; + entries.push_back(current_entry); + + // no match + // return nullptr; + } + + if (found_uses != case_var_uses.use_count()) { + return nullptr; + } + + return pool.alloc_element(in->entries().at(0).src, entries, cond->else_ir); + return nullptr; +} + /*! * Attempt to rewrite a let as another form. If it cannot be rewritten, this will return nullptr. */ @@ -386,6 +554,16 @@ FormElement* rewrite_let(LetElement* in, const Env& env, FormPool& pool) { return as_unused; } + auto as_case_no_else = rewrite_as_case_no_else(in, env, pool); + if (as_case_no_else) { + return as_case_no_else; + } + + auto as_case_with_else = rewrite_as_case_with_else(in, env, pool); + if (as_case_with_else) { + return as_case_with_else; + } + // nothing matched. return nullptr; } diff --git a/decompiler/analysis/type_analysis.cpp b/decompiler/analysis/type_analysis.cpp index f6b3f428b8..990bf3f38c 100644 --- a/decompiler/analysis/type_analysis.cpp +++ b/decompiler/analysis/type_analysis.cpp @@ -91,6 +91,7 @@ bool run_type_analysis_ir2(const TypeSpec& my_type, DecompilerTypeSystem& dts, F } std::vector block_init_types, op_types; + std::vector block_needs_update(func.basic_blocks.size(), true); block_init_types.resize(func.basic_blocks.size()); op_types.resize(func.ir2.atomic_ops->ops.size()); auto& aop = func.ir2.atomic_ops; @@ -111,6 +112,9 @@ bool run_type_analysis_ir2(const TypeSpec& my_type, DecompilerTypeSystem& dts, F run_again = false; // do each block in the topological sort order: for (auto block_id : order.vist_order) { + if (!block_needs_update.at(block_id)) { + continue; + } auto& block = func.basic_blocks.at(block_id); TypeState* init_types = &block_init_types.at(block_id); for (int op_id = aop->block_id_to_first_atomic_op.at(block_id); @@ -145,6 +149,7 @@ bool run_type_analysis_ir2(const TypeSpec& my_type, DecompilerTypeSystem& dts, F // for the next op... init_types = &op_types.at(op_id); } + block_needs_update.at(block_id) = false; // propagate the types: for each possible succ for (auto succ_block_id : {block.succ_ft, block.succ_branch}) { @@ -153,6 +158,7 @@ bool run_type_analysis_ir2(const TypeSpec& my_type, DecompilerTypeSystem& dts, F if (dts.tp_lca(&block_init_types.at(succ_block_id), *init_types)) { // if something changed, run again! run_again = true; + block_needs_update.at(succ_block_id) = true; } } } diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index cb31abfc1e..74122e1c3d 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -498,6 +498,7 @@ :type int32 :bitfield #f + (bucket-3 3) (tfrag-tex0 5) ;; merc0 10 ;; generic0 11 @@ -529,6 +530,7 @@ (water-tex1 60) ;; merc1 61 ;; generic1 62 + (bucket-65 65) ;; debug spheres? 67 (debug-draw0 67) ;; debug text 68 @@ -3448,7 +3450,7 @@ (define-extern dma-buffer-add-buckets (function dma-buffer int none)) (define-extern dma-buffer-patch-buckets (function dma-bucket int dma-bucket)) -(define-extern dma-bucket-insert-tag (function dma-bucket int pointer (pointer dma-tag) pointer)) +(define-extern dma-bucket-insert-tag (function dma-bucket bucket-id pointer (pointer dma-tag) pointer)) ;; ---------------------- @@ -4553,7 +4555,7 @@ (dummy-18 () none 18) (dummy-19 () none 19) (unload! (_type_ texture-page) int 20) - (upload-one-common! (_type_) symbol 21) + (upload-one-common! (_type_ level) symbol 21) (lookup-boot-common-id (_type_ int) int 22) ) ) @@ -4860,7 +4862,7 @@ (add-irq-to-tex-buckets! (_type_) none 11) (unload! (_type_) _type_ 12) (bsp-name (_type_) symbol 13) - (dummy-14 (_type_ object) none 14) + (dummy-14 (_type_ object) memory-usage-block 14) (dummy-15 (_type_ vector) symbol 15) (dummy-16 (_type_) none 16) (load-continue (_type_) _type_ 17) @@ -4881,8 +4883,8 @@ (declare-type entity-links structure) (deftype level-group (basic) ((length int32 :offset-assert 4) - (unknown-level-1 level :offset-assert 8) - (unknown-level-2 level :offset-assert 12) + (log-in-level level :offset-assert 8) + (loading-level level :offset-assert 12) (entity-link entity-links :offset-assert 16) ;; not sure what's going on here (border? basic :offset-assert 20) (vis? basic :offset-assert 24) @@ -4910,7 +4912,7 @@ (level-get-for-use (_type_ symbol symbol) level 11) (activate-levels! (_type_) int 12) (dummy-13 () none 13) - (dummy-14 () none 14) + (dummy-14 (_type_ object) none 14) (dummy-15 () none 15) (dummy-16 (_type_) int 16) (level-get-target-inside (_type_) level 17) @@ -5375,7 +5377,7 @@ (sfx-volume float :offset-assert 4) (music-volume float :offset-assert 8) (dialog-volume float :offset-assert 12) - (process-mask uint32 :offset-assert 16) + (process-mask process-mask :offset-assert 16) (common-page int32 :offset-assert 20) (language int64 :offset-assert 24) (screenx int32 :offset-assert 32) @@ -5551,8 +5553,8 @@ (define-extern loado (function string kheap object)) (define-extern texture-relocate (function dma-buffer texture int gs-psm int dma-buffer)) (define-extern dma-buffer-add-ref-texture (function dma-buffer pointer int int gs-psm none)) -(define-extern upload-vram-pages (function texture-pool texture-pool-segment texture-page int int int)) -(define-extern upload-vram-pages-pris (function texture-pool texture-pool-segment texture-page int int int)) +(define-extern upload-vram-pages (function texture-pool texture-pool-segment texture-page int bucket-id int)) +(define-extern upload-vram-pages-pris (function texture-pool texture-pool-segment texture-page bucket-id int int)) (define-extern movie? (function symbol)) (define-extern texture-page-near-allocate-1 (function texture-pool texture-page kheap int texture-page)) (define-extern texture-page-near-allocate-0 (function texture-pool texture-page kheap int texture-page)) @@ -5775,7 +5777,7 @@ ) (deftype skeleton (inline-array-class) - () + ((bones bone :inline :dynamic)) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 @@ -5819,6 +5821,7 @@ ;; - Types +(declare-type ambient-list structure) (deftype drawable (basic) ((id int16 :offset-assert 4) ; (unknown basic :offset-assert 8) ;; - from default-menu::build-instance-list @@ -5836,7 +5839,7 @@ (dummy-14 () none 14) (dummy-15 (_type_) none 15) (dummy-16 (_type_ object object) object 16) - (dummy-17 () none 17) + (dummy-17 (_type_ sphere int ambient-list) none 17) ) ) @@ -5906,24 +5909,18 @@ ;; field distance is a float printed as hex? ) -; (deftype drawable-inline-array-node (drawable-inline-array) -; () -; :method-count-assert 18 -; :size-assert #x44 -; :flag-assert #x1200000044 -; ;; too many basic blocks -; (:methods -; (dummy-9 () none 9) -; (dummy-10 () none 10) -; (dummy-11 () none 11) -; (dummy-12 () none 12) -; (dummy-13 () none 13) -; (dummy-14 () none 14) -; (dummy-15 () none 15) -; (dummy-16 () none 16) -; (dummy-17 () none 17) -; ) -; ) +(deftype drawable-inline-array-node (drawable-inline-array) + ((data draw-node 1 :inline) + (pad uint32) + ) + :method-count-assert 18 + :size-assert #x44 + :flag-assert #x1200000044 + ;; too many basic blocks + (:methods + + ) + ) (deftype draw-node-dma (structure) ((banka draw-node 32 :inline :offset-assert 0) @@ -6038,14 +6035,13 @@ (deftype ambient-list (structure) ((num-items int32 :offset-assert 0) - (items uint32 2048 :offset-assert 4) + (items drawable-ambient 2048 :offset-assert 4) ) :method-count-assert 9 :size-assert #x2004 :flag-assert #x900002004 ) - ;; ---------------------- ;; File - game-task-h ;; Source Path - engine/game/task/game-task-h.gc @@ -6515,9 +6511,10 @@ ) (deftype ocean-mid-mask (structure) - ((mask uint8 8 :offset-assert 0) + ((mask uint8 8 :offset-assert 0 :do-not-decompile) ;; avoid huge arrays. (dword uint64 :offset 0) ) + :pack-me :method-count-assert 9 :size-assert #x8 :flag-assert #x900000008 @@ -6532,7 +6529,7 @@ ) (deftype ocean-mid-masks (basic) - ((data uint32 :offset-assert 4) + ((data (inline-array ocean-mid-mask) :offset-assert 4) ) :pack-me :method-count-assert 9 @@ -6561,7 +6558,7 @@ ) (deftype ocean-trans-indices (basic) - ((data uint32 2304 :offset-assert 4) + ((data ocean-trans-index 2304 :inline :offset-assert 4) ) :method-count-assert 9 :size-assert #x2404 @@ -6577,7 +6574,7 @@ ) (deftype ocean-near-indices (basic) - ((data uint32 :offset-assert 4) + ((data (inline-array ocean-near-index) :offset-assert 4) ) :method-count-assert 9 :size-assert #x8 @@ -7443,7 +7440,7 @@ ) (deftype art-mesh-anim (art-element) - () + ((data basic :dynamic)) :method-count-assert 13 :size-assert #x20 :flag-assert #xd00000020 @@ -8848,8 +8845,8 @@ (auto-save-status uint32 :offset-assert 280) (auto-save-card int32 :offset-assert 284) (auto-save-which int32 :offset-assert 288) - (pov-camera-handle uint64 :offset-assert 296) - (other-camera-handle uint64 :offset-assert 304) + (pov-camera-handle handle :offset-assert 296) + (other-camera-handle handle :offset-assert 304) (death-pos vector-array :offset-assert 312) (dummy basic :offset-assert 316) (auto-save-count int32 :offset-assert 320) @@ -11588,7 +11585,7 @@ (unk-data-1 pointer :offset-assert 60) (unk-data-1-len int32 :offset-assert 64) - (unk-zero-0 uint32 :offset-assert 68) + (unk-zero-0 basic :offset-assert 68) (name symbol :offset-assert 72) (nickname symbol :offset-assert 76) @@ -11616,7 +11613,6 @@ :flag-assert #x1400000190 (:methods (relocate (_type_ kheap (pointer uint8)) none :replace 7) - (dummy-17 () none 17) (dummy-18 (_type_) none 18) (dummy-19 (_type_) none 19) ) @@ -12324,7 +12320,7 @@ (dma-level-0 uint32 :offset 32) (dma-base uint32 :offset 36) (dma-level-1 uint32 :offset 40) - (dma-qwc uint32 4 :offset-assert 44) + (dma-qwc uint32 4 :offset 44) (shader uint32 :offset 48) (num-shaders uint8 :offset 52) (num-base-colors uint8 :offset 53) @@ -12359,7 +12355,7 @@ ) (deftype drawable-tree-tfrag (drawable-tree) - () + ((time-of-day-pal time-of-day-palette :offset 12)) :method-count-assert #x12 :size-assert #x24 :flag-assert #x1200000024 @@ -14016,7 +14012,7 @@ (dummy-17 () none 17) (dummy-18 () none 18) (dummy-19 () none 19) - (dummy-20 () none 20) + (hidden? (_type_) symbol 20) (dummy-21 () none 21) (dummy-22 () none 22) (TODO-RENAME-23 (_type_ symbol symbol) none 23) @@ -14797,9 +14793,9 @@ (define-extern print-cl-stat function) (define-extern clear-cl-stat function) -(define-extern mem-usage-bsp-tree function) +(define-extern mem-usage-bsp-tree (function bsp-header (inline-array bsp-node) memory-usage-block int none)) (define-extern bsp-camera-asm function) -(define-extern print-collide-stats function) +(define-extern print-collide-stats (function none)) ;; - Unknowns @@ -14817,12 +14813,12 @@ (define-extern perf-stat-bucket->string function) (define-extern print-tr-stat function) (define-extern clear-tr-stat function) -(define-extern print-terrain-stats function) +(define-extern print-terrain-stats (function none)) (define-extern update-subdivide-settings! function) (define-extern set-tfrag-dists! function) -(define-extern start-perf-stat-collection function) -(define-extern end-perf-stat-collection function) -(define-extern print-perf-stats function) +(define-extern start-perf-stat-collection (function engine display-frame int int none)) +(define-extern end-perf-stat-collection (function none)) +(define-extern print-perf-stats (function none)) ;; - Unknowns @@ -14944,7 +14940,7 @@ (define-extern add-to-sprite-aux-list function) (define-extern sprite-set-3d-quaternion! function) (define-extern sprite-get-3d-quaternion! function) -(define-extern sprite-draw function) +(define-extern sprite-draw (function display none)) (define-extern sprite-allocate-user-hvdf function) (define-extern sprite-release-user-hvdf function) (define-extern sprite-get-user-hvdf function) @@ -15348,7 +15344,7 @@ (define-extern bones-init function) (define-extern draw-bones-mtx-calc function) (define-extern bones-mtx-calc function) -(define-extern bones-mtx-calc-execute function) +(define-extern bones-mtx-calc-execute (function none)) (define-extern bones-wrapup function) (define-extern dump-qword function) (define-extern bones-debug function) @@ -15368,7 +15364,7 @@ ;;(define-extern bones-vu0-block object) ;; unknown type ;;(define-extern *texscroll-globals* object) ;; unknown type ;;(define-extern *use-generic* object) ;; unknown type -;;(define-extern *merc-global-array* object) ;; unknown type +(define-extern *merc-global-array* merc-global-array) ;; unknown type ;;(define-extern *bones-first* object) ;; unknown type ;;(define-extern *default-shadow-settings* object) ;; unknown type @@ -15491,7 +15487,7 @@ (define-extern high-speed-reject function) (define-extern generic-merc-execute-asm function) (define-extern generic-merc-add-to-cue function) -(define-extern generic-merc-execute-all function) +(define-extern generic-merc-execute-all (function none)) ;; - Unknowns @@ -15589,7 +15585,7 @@ (define-extern shadow-add-single-edges function) (define-extern shadow-add-double-tris function) (define-extern shadow-add-double-edges function) -(define-extern shadow-execute-all function) +(define-extern shadow-execute-all (function dma-buffer shadow-queue none)) ;; - Symbols @@ -15728,8 +15724,8 @@ (define-extern draw-drawable-tree-ice-tfrag function) (define-extern tie-near-make-perspective-matrix function) (define-extern draw-drawable-tree-instance-tie function) -(define-extern init-background function) -(define-extern finish-background function) +(define-extern init-background (function none)) +(define-extern finish-background (function none)) ;; - Symbols @@ -15772,7 +15768,7 @@ (define-extern shrub-upload-view-data function) (define-extern shrub-init-view-data function) (define-extern mem-usage-shrub-walk function) -(define-extern shrub-make-perspective-matrix function) +(define-extern shrub-make-perspective-matrix (function matrix none)) (define-extern shrub-time function) (define-extern draw-inline-array-instance-shrub function) (define-extern draw-prototype-inline-array-shrub function) @@ -16349,7 +16345,7 @@ (define-extern close-specific-task! (function game-task task-status int)) (define-extern reset-all-hint-controls (function none)) (define-extern reset-actors (function symbol none)) -(define-extern set-blackout-frames (function int uint)) +(define-extern set-blackout-frames (function int int)) (define-extern set-master-mode (function symbol none)) (define-extern stop (function symbol int)) (define-extern start (function symbol continue-point target)) @@ -16976,7 +16972,7 @@ (define-extern time-of-day-setup (function symbol int none)) ;; not confirmed (define-extern set-time-of-day function) (define-extern init-time-of-day-context (function time-of-day-context none)) -(define-extern update-time-of-day function) +(define-extern update-time-of-day (function time-of-day-context none)) ;; - Unknowns @@ -17068,7 +17064,7 @@ (define-extern clip-polygon-against-negative-hyperplane function) (define-extern sky-duplicate-polys function) (define-extern sky-tng-setup-clouds function) -(define-extern render-sky-tng function) +(define-extern render-sky-tng (function time-of-day-context none)) ;; - Unknowns @@ -17217,7 +17213,7 @@ (define-extern lb-set-camera function) (define-extern lb-set-player function) (define-extern lb-copy function) -(define-extern render-boundaries function) +(define-extern render-boundaries (function none)) (define-extern command-get-time function) ;; - Unknowns @@ -17314,19 +17310,20 @@ ;; - Functions (define-extern set-font-color-alpha function) -(define-extern load-game-text-info function) +(define-extern load-game-text-info (function string symbol kheap int)) (define-extern load-level-text-files (function int none)) (define-extern draw-debug-text-box function) (define-extern print-game-text-scaled function) (define-extern disable-level-text-file-loading function) (define-extern enable-level-text-file-loading function) +(define-extern link (function pointer pointer int kheap int pointer)) ;; - Unknowns -;;(define-extern *level-text-file-load-flag* object) ;; unknown type -;;(define-extern *game-text-line* object) ;; unknown type -;;(define-extern *game-text-word* object) ;; unknown type -;;(define-extern text-is-loading object) ;; unknown type +(define-extern *level-text-file-load-flag* symbol) +(define-extern *game-text-line* string) +(define-extern *game-text-word* string) +(define-extern text-is-loading symbol) ;; ---------------------- @@ -17485,7 +17482,7 @@ (define-extern find-ground-point function) (define-extern default-collision-reaction function) (define-extern simple-collision-reaction function) -(define-extern collide-shape-draw-debug-marks function) +(define-extern collide-shape-draw-debug-marks (function none)) (define-extern debug-report-col-stats function) ;; - Unknowns @@ -19357,7 +19354,7 @@ (define-extern toggle-pause (function int)) (define-extern deactivate-progress (function none)) (define-extern debug-init-buffer (function bucket-id uint uint none)) -(define-extern real-main-draw-hook function) +(define-extern real-main-draw-hook (function none)) (define-extern error-sphere function) (define-extern draw-instance-info function) (define-extern find-instance-by-name (function string instance)) ;; TODO - ret not verified @@ -19366,7 +19363,7 @@ (define-extern find-instance-by-index function) (define-extern prototype-bucket-recalc-fields (function instance none)) ;; TODO - ret not confirmed (define-extern dma-add-process-drawable-hud function) -(define-extern foreground-engine-execute function) +(define-extern foreground-engine-execute (function engine display-frame int int none)) (define-extern main-debug-hook function) (define-extern main-draw-hook function) (define-extern swap-display (function display object)) @@ -19389,10 +19386,10 @@ (define-extern put-display-env (function object none)) ;; unknown type (define-extern *surrogate-dma-buffer* dma-buffer) ;; unknown type (define-extern *screen-shot* symbol) ;; unknown type -;;(define-extern *hud-lights* object) ;; unknown type -;;(define-extern *instance-mem-usage* object) ;; unknown type -;;(define-extern *add-sphere* object) ;; unknown type -;;(define-extern *generic-effect-mode* object) ;; unknown type +(define-extern *hud-lights* vu-lights) ;; unknown type +(define-extern *instance-mem-usage* memory-usage-block) ;; unknown type +(define-extern *add-sphere* symbol) ;; unknown type +(define-extern *generic-effect-mode* int) ;; unknown type ;; ---------------------- @@ -20795,8 +20792,8 @@ (define-extern render-ocean-far function) (define-extern render-ocean-quad function) (define-extern draw-large-polygon-ocean function) -(define-extern draw-ocean function) -(define-extern update-ocean function) +(define-extern draw-ocean (function none)) +(define-extern update-ocean (function none)) ;; - Unknowns @@ -20924,7 +20921,7 @@ (define-extern compute-and-draw-shadow function) (define-extern draw-shadow function) (define-extern add-fake-shadow-to-buffer function) -(define-extern swap-fake-shadow-buffers function) +(define-extern swap-fake-shadow-buffers (function none)) ;; ---------------------- @@ -20937,7 +20934,7 @@ (define-extern convert-eye-data function) (define-extern render-eyes function) -(define-extern update-eyes function) +(define-extern update-eyes (function none)) ;; - Unknowns diff --git a/decompiler/config/jak1_ntsc_black_label/hacks.jsonc b/decompiler/config/jak1_ntsc_black_label/hacks.jsonc index a9b3fb733e..e1e7bc6bee 100644 --- a/decompiler/config/jak1_ntsc_black_label/hacks.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/hacks.jsonc @@ -207,7 +207,7 @@ "draw-string", // decomp - "(method 16 level)", // BUG: cfg fails + //"(method 16 level)", // BUG: cfg fails "unpack-comp-huf", "unpack-comp-rle", @@ -277,9 +277,6 @@ "render-boundary-quad", "draw-boundary-polygon", - // text BUG - "load-game-text-info", - // collide-probe "collide-probe-instance-tie", "collide-probe-node", @@ -505,8 +502,8 @@ " pris-geo ~192H~5DK ~280Hpris-fragment~456H~5DK~%": 2, " pris-anim ~192H~5DK ~280Hpris-generic~456H~5DK~%": 2, " textures ~192H~5DK ~280Htextures~456H~5DK~%": 2, - " entity ~192H~5DK~%":2, - " misc ~192H~5DK ~280Hsprite~456H~5DK~%":2 + " entity ~192H~5DK~%": 2, + " misc ~192H~5DK ~280Hsprite~456H~5DK~%": 2 }, "blocks_ending_in_asm_branch": { @@ -538,6 +535,10 @@ "adgif-shader<-texture-with-update!": [0, 1], - "display-loop": [44, 49, 66, 96] + "display-loop": [44, 49, 66, 96], + + "load-game-text-info": [12, 13, 14, 18], + + "real-main-draw-hook": [75, 77] } } diff --git a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc index b9f31659f1..fd2dd9306d 100644 --- a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc @@ -144,25 +144,28 @@ "ocean-tables": [ // see comment in ocean-tables.gc - // ["L26", "ocean-spheres", true], - // ["L18", "ocean-spheres", true], - // ["L25", "ocean-colors", true], - // ["L17", "ocean-colors", true], - // ["L23", "ocean-near-indices", true], - // ["L15", "ocean-near-indices", true], - // ["L9", "ocean-near-indices", true], - // ["L22", "ocean-trans-indices", true], - // ["L14", "ocean-trans-indices", true], - // ["L8", "ocean-trans-indices", true], - // ["L21", "ocean-mid-indices", true], - // ["L13", "ocean-mid-indices", true], - // ["L7", "ocean-mid-indices", true], - // ["L19", "ocean-mid-masks", true], - // ["L11", "ocean-mid-masks", true], - // ["L5", "ocean-mid-masks", true], - // ["L4", "ocean-map", true], - // ["L3", "ocean-map", true], - // ["L2", "ocean-map", true] + ["L26", "ocean-spheres", true], + ["L25", "ocean-colors", true], + ["L23", "ocean-near-indices", true], // ok + ["L22", "ocean-trans-indices", true], + ["L21", "ocean-mid-indices", true], + ["L19", "ocean-mid-masks", true], + ["L18", "ocean-spheres", true], + ["L17", "ocean-colors", true], + ["L15", "ocean-near-indices", true], + ["L9", "ocean-near-indices", true], + + ["L14", "ocean-trans-indices", true], + ["L8", "ocean-trans-indices", true], + + ["L13", "ocean-mid-indices", true], + ["L7", "ocean-mid-indices", true], + + ["L11", "ocean-mid-masks", true], + ["L5", "ocean-mid-masks", true], + ["L4", "ocean-map", true], + ["L3", "ocean-map", true], + ["L2", "ocean-map", true] ], "ocean-frames": [["L1", "(pointer uint32)", true, 16384]], @@ -556,11 +559,31 @@ ["L12", "uint64", true] ], + "shadow-cpu": [ + ["L122", "shadow-data", true] + ], + "entity-table": [["L8", "(array entity-info)", true]], - "main": [["L230", "_lambda_", true], ["L309", "float", true]], + "main": [ + ["L230", "_lambda_", true], + ["L309", "float", true], + ["L306", "screen-filter", true], + ["L311", "uint64", true], + ["L312", "uint64", true], + ["L317", "uint64", true], + ["L316", "uint64", true], + ["L320", "uint64", true], + ["L314", "uint64", true], + ["L313", "uint64", true], + ["L315", "uint64", true] + ], - "geometry": [["L125", "float", true], ["L126", "float", true], ["L112", "(pointer float)", true, 4]], + "geometry": [ + ["L125", "float", true], + ["L126", "float", true], + ["L112", "(pointer float)", true, 4] + ], "level": [ ["L452", "_auto_", true], @@ -1163,9 +1186,7 @@ ["L38", "uint64", true], ["L39", "uint64", true] ], - "memory-usage": [ - ["L15", "_lambda_", true] - ], + "memory-usage": [["L15", "_lambda_", true]], "path": [ ["L47", "float", true], diff --git a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc index f7d04b7e99..4790bcee21 100644 --- a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc @@ -497,9 +497,7 @@ [64, "vector"] ], - "vector-plane-distance": [ - [16, "vector"] - ], + "vector-plane-distance": [[16, "vector"]], "curve-length": [ [16, "vector"], @@ -521,17 +519,11 @@ [32, "vector"] ], - "mem-size": [ - [16, "memory-usage-block"] - ], + "mem-size": [[16, "memory-usage-block"]], - "display-loop": [ - [16, "sphere"] - ], + "display-loop": [[16, "sphere"]], - "(method 14 curve-control)": [ - [16, "vector"] - ], + "(method 14 curve-control)": [[16, "vector"]], "(method 19 path-control)": [ [16, "vector"], @@ -540,14 +532,14 @@ [64, "vector"] ], + "progress-allowed?": [[16, "event-message-block"]], + "(method 9 align-control)": [ [16, "matrix"], [80, "quaternion"] ], - "(method 10 align-control)": [ - [16, "vector"] - ], + "(method 10 align-control)": [[16, "vector"]], "placeholder-do-not-add-below!": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index 8655fb818d..8adbe2f29f 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -407,15 +407,17 @@ "adgif-shader<-texture-simple!": [[5, "v1", "uint"]], - "display-frame-start": [ - [4, "v1", "(pointer uint32)"] - ], + "display-frame-start": [[4, "v1", "(pointer uint32)"]], "display-loop": [ [152, "v1", "(pointer int32)"], [157, "a0", "(pointer process-drawable)"] ], + "load-game-text-info": [ + [4, "v1", "game-text-info"] + ], + "texture-relocate": [ [[17, 21], "t4", "dma-packet"], [[27, 30], "t4", "gs-gif-tag"], @@ -804,7 +806,10 @@ [[1, 5], "v1", "collide-fragment"] ], - "main-cheats": [[1221, "t9", "(function cpu-thread function none)"]], + "main-cheats": [ + [1221, "t9", "(function cpu-thread function none)"], + [[1123, 1126], "v1", "dma-packet"] + ], "on": [[33, "t9", "(function cpu-thread function none)"]], "bg": [[37, "a0", "symbol"]], @@ -1158,5 +1163,14 @@ [[27, 31], "t9", "(function object object object object)"] ], + "(method 8 tie-fragment)": [ + [150, "a0", "(pointer int32)"], + [[157, 160], "a0", "basic"] + ], + + "letterbox": [[[29, 33], "v1", "dma-packet"]], + + "blackout": [[[20, 24], "v1", "dma-packet"]], + "placeholder-do-not-add-below": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc index fb5d4f1bae..306c264332 100644 --- a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc @@ -1385,24 +1385,22 @@ }, "display-loop": { - "vars": { - - } + "vars": {} }, "adgif-shader-login": { - "args":"shader", + "args": "shader", "vars": { - "s5-0":"tex" + "s5-0": "tex" } }, "adgif-shader-login-fast": { - "args":["shader"], - "vars":{ - "v1-4":"tex-id", - "a0-9":"dir-entry", - "s5-0":"tex" + "args": ["shader"], + "vars": { + "v1-4": "tex-id", + "a0-9": "dir-entry", + "s5-0": "tex" } }, @@ -2317,5 +2315,50 @@ "vars": { "v0-0": ["ret-val", "symbol"] } + }, + + "letterbox": { + "vars": { + "s5-0": "dma-buf", + "v1-5": ["pkt", "dma-packet"] + } + }, + + "blackout": { + "vars": { + "s5-0": "dma-buf", + "gp-0": "sprite-dma-data", + "v1-4": ["pkt", "dma-packet"] + } + }, + + "set-master-mode": { + "args": ["new-mode"], + "vars": { "v1-3": "mode" } + }, + + "main-cheats": { + "vars": { + "v1-13": "cheatmode-state", + "v1-158": "cheatmode-debug-state", + "v1-303": "cheat-language-state", + "v1-394": "cheat-pal-state", + "s5-9": "dma-buff", + "gp-9": "dma-start", + "v1-533": ["dma-pkt", "dma-packet"], + "gp-10":"timeout", + "v1-548":"inactive-timeout", + "gp-11":"game-end-proc" + } + }, + + "load-game-text-info": { + "args":["txt-name","curr-text","heap"], + "vars":{ + "sv-16":"heap-sym-heap", + "sv-24":"lang", + "sv-32":"load-status", + "sv-40":"heap-free" + } } } diff --git a/decompiler/util/DecompilerTypeSystem.h b/decompiler/util/DecompilerTypeSystem.h index ef5cfc05c8..d1ec31e446 100644 --- a/decompiler/util/DecompilerTypeSystem.h +++ b/decompiler/util/DecompilerTypeSystem.h @@ -6,7 +6,7 @@ namespace decompiler { class TP_Type; -struct TypeState; +class TypeState; class DecompilerTypeSystem { public: diff --git a/decompiler/util/TP_Type.h b/decompiler/util/TP_Type.h index 990cb93260..bde2ffa536 100644 --- a/decompiler/util/TP_Type.h +++ b/decompiler/util/TP_Type.h @@ -335,11 +335,12 @@ class TP_Type { int64_t m_extra_multiplier = 0; }; -struct TypeState { +class TypeState { + private: + public: + std::unordered_map spill_slots; TP_Type gpr_types[32]; TP_Type fpr_types[32]; - std::unordered_map spill_slots; - std::string print_gpr_masked(u32 mask) const; TP_Type& get(const Register& r) { switch (r.get_kind()) { diff --git a/decompiler/util/data_decompile.cpp b/decompiler/util/data_decompile.cpp index cc562faad8..8b237ffffa 100644 --- a/decompiler/util/data_decompile.cpp +++ b/decompiler/util/data_decompile.cpp @@ -275,6 +275,150 @@ std::string print_def(const goos::Object& obj) { } return obj.print(); } + +/*! + * Start at start_byte, and find the location of the next label. + * Will only check labels that are in the given segment. + */ +int index_of_closest_following_label_in_segment(int start_byte, + int seg, + const std::vector& labels) { + int result_idx = -1; + int closest_byte = -1; + for (int i = 0; i < (int)labels.size(); i++) { + const auto& label = labels.at(i); + if (label.target_segment == seg) { + if (result_idx == -1) { + result_idx = i; + closest_byte = label.offset; + } else { + if (label.offset > start_byte && label.offset < closest_byte) { + result_idx = i; + closest_byte = label.offset; + } + } + } + } + return result_idx; +} + +/*! + * Attempt to decompile a reference to an inline array, without knowing the size. + */ +goos::Object decomp_ref_to_inline_array_guess_size( + const std::vector& words, + const std::vector& labels, + int my_seg, + int field_location, + const TypeSystem& ts, + const Field& data_field, + const std::vector>& all_words, + const LinkedObjectFile* file, + const TypeSpec& array_elt_type, + int stride) { + fmt::print("Decomp decomp_ref_to_inline_array_guess_size {}\n", array_elt_type.print()); + + // verify that the field is the right type. + assert(data_field.type() == TypeSpec("inline-array", {array_elt_type})); + + // verify the stride matches the type system + auto elt_type_info = ts.lookup_type(array_elt_type); + assert(stride == align(elt_type_info->get_size_in_memory(), + elt_type_info->get_inline_array_stride_alignment())); + + // the input is the location of the data field. + // we expect that to be a label: + assert((field_location % 4) == 0); + auto pointer_to_data = words.at(field_location / 4); + assert(pointer_to_data.kind == LinkedWord::PTR); + + // the data shouldn't have any labels in the middle of it, so we can find the end of the array + // by searching for the label after the start label. + const auto& start_label = labels.at(pointer_to_data.label_id); + int end_label_idx = + index_of_closest_following_label_in_segment(start_label.offset, my_seg, labels); + assert(end_label_idx >= 0); + const auto& end_label = labels.at(end_label_idx); + fmt::print("Data is from {} to {}\n", start_label.name, end_label.name); + + // now we can figure out the size + int size_bytes = end_label.offset - start_label.offset; + int size_elts = size_bytes / stride; // 32 bytes per ocean-near-index + int leftover_bytes = size_bytes % stride; + fmt::print("Size is {} bytes: {} elts, {} left over\n", size_bytes, size_elts, leftover_bytes); + + // if we have leftover, should verify that its all zeros, or that it's the type pointer + // of the next basic in the data section. + // ex: + // .word + // .type + // L21: ; label some other basic + // + int padding_start = end_label.offset - leftover_bytes; + int padding_end = end_label.offset; + for (int pad_byte_idx = padding_start; pad_byte_idx < padding_end; pad_byte_idx++) { + auto& word = all_words.at(my_seg).at(pad_byte_idx / 4); + switch (word.kind) { + case LinkedWord::PLAIN_DATA: + assert(word.get_byte(pad_byte_idx) == 0); + break; + case LinkedWord::TYPE_PTR: + break; + default: + assert(false); + } + } + + // now disassemble: + std::vector array_def = {pretty_print::to_symbol( + fmt::format("new 'static 'inline-array {} {}", array_elt_type.print(), size_elts))}; + + for (int elt = 0; elt < size_elts; elt++) { + // for each element, create a fake temporary label at the start to identify it + DecompilerLabel fake_label; + fake_label.target_segment = my_seg; // same segment + fake_label.offset = start_label.offset + elt * stride; + array_def.push_back( + decompile_at_label(array_elt_type, fake_label, labels, all_words, ts, file)); + } + + // build into a list. + return pretty_print::build_list(array_def); +} + +/*! + * Decompile the data field of ocean-near-indices, which is an (inline-array ocean-near-index). + * This is like a C++ ocean_near_index*, meaning we don't know how long the array is. + * We know all the data in a ocean_near_index is just integers, so we can guess that the end + * of the array is just the location of the next label. + * There's a chance that this will include some padding in the array and make it too long, + * but there is no harm in that. + */ +goos::Object ocean_near_indices_decompile(const std::vector& words, + const std::vector& labels, + int my_seg, + int field_location, + const TypeSystem& ts, + const Field& data_field, + const std::vector>& all_words, + const LinkedObjectFile* file) { + return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, + data_field, all_words, file, + TypeSpec("ocean-near-index"), 32); +} + +goos::Object ocean_mid_masks_decompile(const std::vector& words, + const std::vector& labels, + int my_seg, + int field_location, + const TypeSystem& ts, + const Field& data_field, + const std::vector>& all_words, + const LinkedObjectFile* file) { + return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, + data_field, all_words, file, + TypeSpec("ocean-mid-mask"), 8); +} } // namespace goos::Object decompile_structure(const TypeSpec& type, @@ -325,11 +469,18 @@ goos::Object decompile_structure(const TypeSpec& type, // check alignment if (offset_location % 8) { - throw std::runtime_error(fmt::format( - "Tried to decompile a structure with type type {} (type offset {}) at label {}, but it has " - "alignment {}, which is not valid. {}", + std::string error = fmt::format( + "Decompiling a structure with type type {} (type offset {}) at label {}, but it has " + "alignment {}, which is not valid. This might be okay for a packed inline array, but " + "shouldn't happen for basics. {}", type_info->get_name(), type_info->get_offset(), label.name, (offset_location % 8), - (offset_location & 0b10) ? "Maybe it is actually a pair?" : "")); + (offset_location & 0b10) ? "Maybe it is actually a pair?" : ""); + + if (is_basic || !type_info->is_packed()) { + throw std::runtime_error(error); + } else { + // fmt::print("{}\n", error); + } } // check enough room @@ -448,11 +599,22 @@ goos::Object decompile_structure(const TypeSpec& type, fmt::format("Dynamic value field {} in static data type {} not yet implemented", field.name(), actual_type.print())); } else { - std::vector bytes_out; - for (int byte_idx = field_start; byte_idx < field_end; byte_idx++) { - bytes_out.push_back(obj_words.at(byte_idx / 4).get_byte(byte_idx % 4)); + if (field.name() == "data" && type.print() == "ocean-near-indices") { + // first, get the label: + field_defs_out.emplace_back( + field.name(), ocean_near_indices_decompile(obj_words, labels, label.target_segment, + field_start, ts, field, words, file)); + } else if (field.name() == "data" && type.print() == "ocean-mid-masks") { + field_defs_out.emplace_back( + field.name(), ocean_mid_masks_decompile(obj_words, labels, label.target_segment, + field_start, ts, field, words, file)); + } else { + std::vector bytes_out; + for (int byte_idx = field_start; byte_idx < field_end; byte_idx++) { + bytes_out.push_back(obj_words.at(byte_idx / 4).get_byte(byte_idx % 4)); + } + field_defs_out.emplace_back(field.name(), decompile_value(field.type(), bytes_out, ts)); } - field_defs_out.emplace_back(field.name(), decompile_value(field.type(), bytes_out, ts)); } } else { diff --git a/docs/markdown/progress-notes/changelog.md b/docs/markdown/progress-notes/changelog.md index a8b637fcd4..494ea29a28 100644 --- a/docs/markdown/progress-notes/changelog.md +++ b/docs/markdown/progress-notes/changelog.md @@ -175,4 +175,6 @@ - Methods can now be `:replace`d to override their type from their parent. Use this with extreme care. - TypeSpecs now support "tags". This can specify a `:behavior` tag for a function. - Lambdas and methods now support `:behavior` to specify the current process type. -- `defbehavior` has been added to define a global behavior. \ No newline at end of file +- `defbehavior` has been added to define a global behavior. +- Auto-generated inspect methods of process now start by calling the parent type's inspect, like in GOAL. +- Fields with type `(inline-array thing)` can now be set in statics. \ No newline at end of file diff --git a/game/common/game_common_types.h b/game/common/game_common_types.h new file mode 100644 index 0000000000..7f449a0f13 --- /dev/null +++ b/game/common/game_common_types.h @@ -0,0 +1,13 @@ +#pragma once + +//! Supported languages. +enum class Language { + English = 0, + French = 1, + German = 2, + Spanish = 3, + Italian = 4, + Japanese = 5, + UK_English = 6, + // uk english? +}; \ No newline at end of file diff --git a/game/kernel/kboot.cpp b/game/kernel/kboot.cpp index 16afdd0bea..0399b89aaa 100644 --- a/game/kernel/kboot.cpp +++ b/game/kernel/kboot.cpp @@ -12,6 +12,7 @@ #include "common/common_types.h" #include "common/util/Timer.h" +#include "game/common/game_common_types.h" #include "game/sce/libscf.h" #include "kboot.h" #include "kmachine.h" diff --git a/game/kernel/kboot.h b/game/kernel/kboot.h index 8b08905246..779d905f8e 100644 --- a/game/kernel/kboot.h +++ b/game/kernel/kboot.h @@ -5,23 +5,8 @@ * GOAL Boot. Contains the "main" function to launch GOAL runtime. */ -#ifndef RUNTIME_KBOOT_H -#define RUNTIME_KBOOT_H - #include "common/common_types.h" -//! Supported languages. -enum class Language { - English = 0, - French = 1, - German = 2, - Spanish = 3, - Italian = 4, - Japanese = 5, - UK_English = 6, - // uk english? -}; - struct MasterConfig { u16 language; //! GOAL language 0 u16 aspect; //! SCE_ASPECT 2 @@ -76,5 +61,3 @@ void KernelCheckAndDispatch(); void KernelShutdown(); extern u32 MasterUseKernel; - -#endif // RUNTIME_KBOOT_H diff --git a/game/kernel/kdgo.cpp b/game/kernel/kdgo.cpp index fee23cf06e..639e36c2ee 100644 --- a/game/kernel/kdgo.cpp +++ b/game/kernel/kdgo.cpp @@ -364,7 +364,7 @@ void load_and_link_dgo_from_c(const char* name, Ptr heap, u32 linkFla char objName[64]; strcpy(objName, (dgoObj + 4).cast().c()); // name from dgo object header - lg::debug("[link and exec] {} {}", objName, lastObjectLoaded); + lg::debug("[link and exec] {} {} {}", objName, lastObjectLoaded, objSize); link_and_exec(obj, objName, objSize, heap, linkFlag); // link now! // inform IOP we are done diff --git a/game/kernel/kmemcard.cpp b/game/kernel/kmemcard.cpp index e8279830dd..fe80470bba 100644 --- a/game/kernel/kmemcard.cpp +++ b/game/kernel/kmemcard.cpp @@ -8,14 +8,16 @@ //#include "ps2/common_types.h" //#include "kernel/kmachine.h" #include "kmemcard.h" +#include // static s32 next; -// static s32 language; +static s32 language; // static MemoryCardOperation op; // static mc_info mc[2]; void kmemcard_init_globals() { // next = 0; + language = 0; } ///*! @@ -65,14 +67,14 @@ void kmemcard_init_globals() { // //} // -///*! -// * Set the language or something. -// */ -// void MC_set_language(s32 l) { -// printf("Language set to %d\n", l); -// language = l; -//} -// +/*! + * Set the language or something. + */ +void MC_set_language(s32 l) { + printf("Language set to %d\n", l); + language = l; +} + // u64 MC_format(s32 param) { // u64 can_add = op.operation == NO_OP; // if(can_add) { diff --git a/game/kernel/kmemcard.h b/game/kernel/kmemcard.h index c19f52997e..f40781e446 100644 --- a/game/kernel/kmemcard.h +++ b/game/kernel/kmemcard.h @@ -5,9 +5,6 @@ * Memory card interface. Very messy code. */ -#ifndef JAK_KMEMCARD_H -#define JAK_KMEMCARD_H - #include "common/common_types.h" #include "kmachine.h" @@ -79,5 +76,3 @@ u64 MC_load(s32 param, s32 param2, Ptr data); void MC_makefile(s32 port, s32 size); u32 MC_check_result(); void MC_get_status(s32 slot, Ptr info); - -#endif // JAK_KMEMCARD_H diff --git a/game/kernel/kscheme.cpp b/game/kernel/kscheme.cpp index 825664432f..a4f45d98aa 100644 --- a/game/kernel/kscheme.cpp +++ b/game/kernel/kscheme.cpp @@ -13,6 +13,7 @@ #include "kmalloc.h" #include "kprint.h" #include "fileio.h" +#include "kmemcard.h" #include "kboot.h" #include "kdsnetm.h" #include "kdgo.h" @@ -1947,7 +1948,7 @@ s32 InitHeapAndSymbol() { // make_function_symbol_from_c("mc-check-result", &CKernel::not_yet_implemented); // make_function_symbol_from_c("mc-get-slot-info", &CKernel::not_yet_implemented); // make_function_symbol_from_c("mc-makefile", &CKernel::not_yet_implemented); - // make_function_symbol_from_c("kset-language", &CKernel::not_yet_implemented); + make_function_symbol_from_c("kset-language", (void*)MC_set_language); // set *debug-segment* auto ds_symbol = intern_from_c("*debug-segment*"); diff --git a/game/overlord/srpc.cpp b/game/overlord/srpc.cpp index 17bcbfedcc..7070b27f26 100644 --- a/game/overlord/srpc.cpp +++ b/game/overlord/srpc.cpp @@ -4,6 +4,7 @@ #include "srpc.h" #include "game/sce/iop.h" #include "game/common/loader_rpc_types.h" +#include "game/common/game_common_types.h" #include "common/versions.h" #include "sbank.h" #include "iso_api.h" @@ -16,11 +17,16 @@ uint8_t gLoaderBuf[SRPC_MESSAGE_SIZE]; int32_t gSoundEnable = 1; u32 gInfoEE = 0; // EE address where we should send info on each frame. +// english, french, germain, spanish, italian, japanese, uk. +static const char* languages[] = {"ENG", "FRE", "GER", "SPA", "ITA", "JAP", "UKE"}; +const char* gLanguage = nullptr; + void srpc_init_globals() { memset((void*)&gMusicTweakInfo, 0, sizeof(gMusicTweakInfo)); memset((void*)gLoaderBuf, 0, sizeof(gLoaderBuf)); gSoundEnable = 1; gInfoEE = 0; + gLanguage = languages[(int)Language::English]; } // todo Thread_Player @@ -71,6 +77,11 @@ void* RPC_Loader(unsigned int /*fno*/, void* data, int size) { gInfoEE = cmd->irx_version.ee_addr; return cmd; } break; + case SoundCommand::SET_LANGUAGE: { + gLanguage = languages[cmd->set_language.langauge_id]; + printf("IOP language: %s\n", gLanguage); // added. + break; + } default: printf("Unhandled RPC Loader command %d\n", (int)cmd->command); assert(false); diff --git a/game/overlord/srpc.h b/game/overlord/srpc.h index a6dd369bcb..56e1156770 100644 --- a/game/overlord/srpc.h +++ b/game/overlord/srpc.h @@ -52,12 +52,17 @@ struct SoundRpcBankCommand { char bank_name[16]; }; +struct SoundRpcSetLanguageCommand { + u32 langauge_id; // game_common_types.h, Language +}; + struct SoundRpcCommand { u16 rsvd1; SoundCommand command; union { SoundRpcGetIrxVersion irx_version; SoundRpcBankCommand load_bank; + SoundRpcSetLanguageCommand set_language; }; }; diff --git a/game/sce/libscf.cpp b/game/sce/libscf.cpp index 5a18fc00fa..cb71e8beeb 100644 --- a/game/sce/libscf.cpp +++ b/game/sce/libscf.cpp @@ -2,7 +2,7 @@ namespace ee { int sceScfGetAspect() { - return SCE_ASPECT_169; + return SCE_ASPECT_43; } int sceScfGetLanguage() { diff --git a/goal_src/engine/anim/mspace-h.gc b/goal_src/engine/anim/mspace-h.gc index ad8aa210ad..cd885dc4f4 100644 --- a/goal_src/engine/anim/mspace-h.gc +++ b/goal_src/engine/anim/mspace-h.gc @@ -5,6 +5,8 @@ ;; name in dgo: mspace-h ;; dgos: GAME, ENGINE +;; mspace is the skeleton-based animation system. + (deftype joint (basic) ((name basic :offset-assert 4) (number int32 :offset-assert 8) @@ -39,7 +41,7 @@ ) (deftype skeleton (inline-array-class) - () + ((bones bone :inline :dynamic)) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 diff --git a/goal_src/engine/camera/math-camera-h.gc b/goal_src/engine/camera/math-camera-h.gc index 7c79bfa69f..739087b1e1 100644 --- a/goal_src/engine/camera/math-camera-h.gc +++ b/goal_src/engine/camera/math-camera-h.gc @@ -6,6 +6,10 @@ ;; dgos: GAME, ENGINE +;; The math-camera is a global that contains camera projection and culling matrices. +;; It also contains some GIF stuff, but these seem to be wrong/unused. +;; Some of the code here may be extremely old and unused. + (deftype vis-gif-tag (structure) ((fog0 uint32 :offset-assert 0) (strip uint32 :offset-assert 4) diff --git a/goal_src/engine/camera/math-camera.gc b/goal_src/engine/camera/math-camera.gc index 2d8ca3ced8..8697033dfa 100644 --- a/goal_src/engine/camera/math-camera.gc +++ b/goal_src/engine/camera/math-camera.gc @@ -535,6 +535,7 @@ ) (defun init-for-transform ((arg0 matrix)) + "Sets up VU0 registers with camera info. Most rendering stuff doesn't use this." (rlet ((vf1 :class vf) (vf17 :class vf) (vf18 :class vf) diff --git a/goal_src/engine/data/art-h.gc b/goal_src/engine/data/art-h.gc index 04f4e86e73..e8f6143dd7 100644 --- a/goal_src/engine/data/art-h.gc +++ b/goal_src/engine/data/art-h.gc @@ -149,7 +149,7 @@ ) (deftype art-mesh-anim (art-element) - () + ((data basic :dynamic :offset-assert 32)) :method-count-assert 13 :size-assert #x20 :flag-assert #xd00000020 diff --git a/goal_src/engine/debug/debug.gc b/goal_src/engine/debug/debug.gc index c1b0567f0e..f7e01565f6 100644 --- a/goal_src/engine/debug/debug.gc +++ b/goal_src/engine/debug/debug.gc @@ -155,7 +155,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - (the-as int arg1) + arg1 a2-1 (the-as (pointer dma-tag) a3-20) ) @@ -374,7 +374,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - (the-as int arg0) + arg0 a2-1 (the-as (pointer dma-tag) a3-16) ) @@ -424,7 +424,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - (the-as int arg0) + arg0 s5-0 (the-as (pointer dma-tag) a3-4) ) @@ -617,7 +617,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - (the-as int arg1) + arg1 a2-1 (the-as (pointer dma-tag) a3-7) ) @@ -884,7 +884,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - (the-as int arg1) + arg1 s5-0 (the-as (pointer dma-tag) a3-11) ) @@ -1388,7 +1388,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - (the-as int arg1) + arg1 s5-0 (the-as (pointer dma-tag) a3-3) ) @@ -1443,7 +1443,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 67 + (bucket-id debug-draw0) s4-0 (the-as (pointer dma-tag) a3-1) ) diff --git a/goal_src/engine/debug/memory-usage-h.gc b/goal_src/engine/debug/memory-usage-h.gc index 13ed8b18ce..f25a362136 100644 --- a/goal_src/engine/debug/memory-usage-h.gc +++ b/goal_src/engine/debug/memory-usage-h.gc @@ -5,17 +5,24 @@ ;; name in dgo: memory-usage-h ;; dgos: GAME, ENGINE +;; The memory-usage system is used to track how memory is arranged. +;; All basics have a mem-usage method that will add its memory usage to +;; a memory-usage-block. It also takes some flags that are currently unknown. + + +;; Information for a single category. (deftype memory-usage-info (structure) ((name string :offset-assert 0) - (count int32 :offset-assert 4) - (used int32 :offset-assert 8) - (total int32 :offset-assert 12) + (count int32 :offset-assert 4) ;; meaning depends on category. For textures, it's the number of textures, for example. + (used int32 :offset-assert 8) ;; how much memory is in use (not counting padding) + (total int32 :offset-assert 12) ;; actual total memory used, including padding to 16-bytes, etc. ) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 ) +;; Memory info for all categories (deftype memory-usage-block (basic) ((work-bsp basic :offset-assert 4) (length int32 :offset-assert 8) @@ -31,8 +38,14 @@ ) ) + +;; The main RAM usage memory info (define *mem-usage* (new 'debug 'memory-usage-block)) + +;; The DMA memory usage info (define *dma-mem-usage* (new 'debug 'memory-usage-block)) + +;; Used internally for computing memory info (define *temp-mem-usage* (the-as memory-usage-block #f)) @@ -41,7 +54,103 @@ (defenum mem-usage-id :bitfield #f :type uint32 + (drawable-group 0) + (tfragment-unknown 1) ;; made up name + (tfragment-base 2) + (tfragment-common 3) + (tfragment-level0 4) + (tfragment-level1 5) + (tfragment-color 6) + (tfragment-debug 7) + (tfragment-pal 8) + (tie-fragment 9) + (tie-gif 10) + (tie-point 11) + (tie-colors 12) + (tie-draw-points 13) + (tie-debug 14) + ;; 15?? + (tie-pal 16) + (tie-generic 17) + (instance-tie 18) + (instance-tie-colors0 19) + (instance-tie-colors1 20) + (instance-tie-colors2 21) + (instance-tie-colors3 22) + (instance-tie-colors 23) + (prototype-bucket-shrub 24) + (generic-shrub 25) + (generic-shrub-data 26) + (shrubbery 27) + (shrubbery-object 28) + (shrubbery-vertex 29) + (shrubbery-color 30) + (shrubbery-stq 31) + (shrubbery-pal 32) + (billboard 33) + ;; ??? + (entity 43) + (camera 44) + (nav-mesh 45) + ;; ?? + (res 48) + (ambient 49) + (collide-fragment-0 50) + (collision-poly-0 51) + (collision-vertex-0 52) + (collide-fragment-1 53) + (collision-poly-1 54) + (collision-vertex-1 55) + (bsp-main 56) + (bsp-misc 57) + (bsp-node 58) + (bsp-leaf-vis-self 59) + (bsp-leaf-vis-adj 60) + (draw-node 61) + (pat 62) + (level-code 63) + (entity-links 64) ;; or ambient links, its messed up + (joint 65) + (joint-anim-compressed 66) + ;; + (art-group 70) + (art-mesh-anim 71) + (art-mesh-geo 72) + (art-joint-geo 73) + (art-joint-anim 74) + (merc-ctrl 75) + (joint-anim-drawable 76) + (blend-shape 77) + (collide-mesh 78) (texture 79) + (string 80) + (array 81) + ;; + (debug-dma 84) ;; maybe + (sky-dma 85) ;; maybe + ;; + (4k-dead-pool 87) + (8k-dead-pool 88) + (16k-dead-pool 89) + (nk-dead-pool 90) + (target-dead-pool 91) + (camera-dead-pool 92) + (debug-dead-pool 93) + (process-active 94) + (heap-total 95) + (heap-process 96) + (heap-header 97) + (heap-thread 98) + (heap-root 99) + (heap-draw-control 100) + (heap-joint-control 101) + (heap-cspace 102) + (heap-bone 103) + (heap-part 104) + (heap-collide-prim 105) + (heap-misc 106) + (shadow-geo 107) + (eye-anim 108) ) ;; get a memory usage id as an integer. diff --git a/goal_src/engine/debug/menu.gc b/goal_src/engine/debug/menu.gc index da769295d9..43dfa02efb 100644 --- a/goal_src/engine/debug/menu.gc +++ b/goal_src/engine/debug/menu.gc @@ -976,7 +976,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 68 + (bucket-id debug-draw1) s4-0 (the-as (pointer dma-tag) a3-1) ) @@ -1041,7 +1041,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 68 + (bucket-id debug-draw1) s5-0 (the-as (pointer dma-tag) a3-1) ) @@ -1096,7 +1096,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 68 + (bucket-id debug-draw1) s5-0 (the-as (pointer dma-tag) a3-1) ) @@ -1213,7 +1213,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 68 + (bucket-id debug-draw1) s1-0 (the-as (pointer dma-tag) a3-2) ) @@ -1253,7 +1253,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 68 + (bucket-id debug-draw1) sv-32 (the-as (pointer dma-tag) a3-3) ) diff --git a/goal_src/engine/dma/dma-bucket.gc b/goal_src/engine/dma/dma-bucket.gc index 9c6a39ccd2..5bb55edc85 100644 --- a/goal_src/engine/dma/dma-bucket.gc +++ b/goal_src/engine/dma/dma-bucket.gc @@ -72,7 +72,7 @@ bucket ) -(defun dma-bucket-insert-tag ((base dma-bucket) (idx int) (tag-start pointer) (tag-end (pointer dma-tag))) +(defun dma-bucket-insert-tag ((base dma-bucket) (idx bucket-id) (tag-start pointer) (tag-end (pointer dma-tag))) "Add a dma chain to the idx bucket" ;; find the bucket diff --git a/goal_src/engine/dma/dma-h.gc b/goal_src/engine/dma/dma-h.gc index e210a9c51c..af8140d175 100644 --- a/goal_src/engine/dma/dma-h.gc +++ b/goal_src/engine/dma/dma-h.gc @@ -213,6 +213,7 @@ :type int32 :bitfield #f + (bucket-3 3) (tfrag-tex0 5) ;; merc0 10 ;; generic0 11 @@ -244,7 +245,7 @@ (water-tex1 60) ;; merc1 61 ;; generic1 62 - ;; common tex 65 + (bucket-65 65) ;; debug spheres? 67 (debug-draw0 67) ;; debug text 68 diff --git a/goal_src/engine/draw/draw-node-h.gc b/goal_src/engine/draw/draw-node-h.gc index f587eee1b6..fb8c710982 100644 --- a/goal_src/engine/draw/draw-node-h.gc +++ b/goal_src/engine/draw/draw-node-h.gc @@ -17,6 +17,19 @@ ;; field distance is a float printed as hex? ) +(deftype drawable-inline-array-node (drawable-inline-array) + ((data draw-node 1 :inline) + (pad uint32) + ) + :method-count-assert 18 + :size-assert #x44 + :flag-assert #x1200000044 + ;; too many basic blocks + (:methods + + ) + ) + ;; the types of these fields are a guess for now. (deftype draw-node-dma (structure) ((banka draw-node 32 :inline :offset-assert 0) diff --git a/goal_src/engine/draw/drawable-ambient-h.gc b/goal_src/engine/draw/drawable-ambient-h.gc index 303707c007..daec1beeb3 100644 --- a/goal_src/engine/draw/drawable-ambient-h.gc +++ b/goal_src/engine/draw/drawable-ambient-h.gc @@ -18,14 +18,6 @@ ) ) -(defmethod inspect drawable-ambient ((obj drawable-ambient)) - (format #t "[~8x] ~A~%" obj (-> obj type)) - (format #t "~Tid: ~D~%" (-> obj id)) - (format #t "~Tbsphere: ~`vector`P~%" (-> obj bsphere)) - (format #t "~Tambient: ~A~%" (-> obj ambient)) - obj - ) - (deftype drawable-tree-ambient (drawable-tree) () :method-count-assert 18 @@ -68,25 +60,9 @@ ) ) -(defmethod inspect level-hint ((obj level-hint)) - (let ((t9-0 (method-of-type process inspect))) - (t9-0 obj) - ) - (format #t "~T~Ttext-id-to-display: ~D~%" (-> obj text-id-to-display)) - (format #t "~T~Tsound-to-play: ~A~%" (-> obj sound-to-play)) - (format #t "~T~Ttrans: #~%" (-> obj trans)) - (format #t "~T~Tsound-id: ~D~%" (-> obj sound-id)) - (format #t "~T~Tmode: ~A~%" (-> obj mode)) - (format #t "~T~Ttotal-time: ~D~%" (-> obj total-time)) - (format #t "~T~Ttotal-off-time: ~D~%" (-> obj total-off-time)) - (format #t "~T~Tlast-time: ~D~%" (-> obj last-time)) - (format #t "~T~Tvoicebox: ~D~%" (-> obj voicebox)) - obj - ) - (deftype ambient-list (structure) ((num-items int32 :offset-assert 0) - (items uint32 2048 :offset-assert 4) + (items drawable-ambient 2048 :offset-assert 4) ) :method-count-assert 9 :size-assert #x2004 @@ -95,4 +71,4 @@ (define-extern kill-current-level-hint (function pair pair symbol none)) -(define-extern level-hint-spawn (function game-text-id string symbol process-tree int none)) \ No newline at end of file +(define-extern level-hint-spawn (function game-text-id string symbol process-tree int none)) diff --git a/goal_src/engine/draw/drawable-h.gc b/goal_src/engine/draw/drawable-h.gc index a16467d69b..48514eb616 100644 --- a/goal_src/engine/draw/drawable-h.gc +++ b/goal_src/engine/draw/drawable-h.gc @@ -5,6 +5,8 @@ ;; name in dgo: drawable-h ;; dgos: GAME, ENGINE +(declare-type ambient-list structure) + ;; These are the base classes for the draw nodes in the engine. (deftype drawable (basic) @@ -20,10 +22,10 @@ (dummy-11 (_type_ int) none 11) ; int - length (dummy-12 (_type_ int) none 12) ; int - length (dummy-13 (_type_ int) none 13) ; int - length - (dummy-14 () none 14) + (dummy-14 () none 14) ;; related to culling? (dummy-15 (_type_) none 15) (dummy-16 (_type_ object object) object 16) - (dummy-17 () none 17) + (dummy-17 (_type_ sphere int ambient-list) none 17) ) ) @@ -40,4 +42,4 @@ ;; assuming (state process-drawable) (define-extern process-drawable-art-error state) -(declare-type process-drawable process) \ No newline at end of file +(declare-type process-drawable process) diff --git a/goal_src/engine/engine/connect.gc b/goal_src/engine/engine/connect.gc index 92be350d79..bb386b2903 100644 --- a/goal_src/engine/engine/connect.gc +++ b/goal_src/engine/engine/connect.gc @@ -8,6 +8,8 @@ ;; This extremely confusing "connection system" allows the connection between ;; "engines" and "processes". Basically, a process may add connections to an engine. ;; A "connection" is really just a function that gets called when the engine runs. +;; Another way to use the system is as a queue of messages from processes to the engine, +;; without using a function. ;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/goal_src/engine/game/game-info-h.gc b/goal_src/engine/game/game-info-h.gc index 6398a381a7..8ac3204405 100644 --- a/goal_src/engine/game/game-info-h.gc +++ b/goal_src/engine/game/game-info-h.gc @@ -264,7 +264,7 @@ (enter-level-time (array uint64) :offset-assert 212) (in-level-time (array uint64) :offset-assert 216) (blackout-time uint64 :offset-assert 224) - (letterbox-time uint64 :offset-assert 232) + (letterbox-time uint64 :offset-assert 232) ;; time to turn off letterboxing, base-frame (hint-play-time uint64 :offset-assert 240) (display-text-time uint64 :offset-assert 248) (display-text-handle uint64 :offset-assert 256) @@ -274,8 +274,8 @@ (auto-save-status uint32 :offset-assert 280) (auto-save-card int32 :offset-assert 284) (auto-save-which int32 :offset-assert 288) - (pov-camera-handle uint64 :offset-assert 296) - (other-camera-handle uint64 :offset-assert 304) + (pov-camera-handle handle :offset-assert 296) + (other-camera-handle handle :offset-assert 304) (death-pos vector-array :offset-assert 312) (dummy basic :offset-assert 316) (auto-save-count int32 :offset-assert 320) diff --git a/goal_src/engine/game/game-info.gc b/goal_src/engine/game/game-info.gc index 7eba001d35..061a975684 100644 --- a/goal_src/engine/game/game-info.gc +++ b/goal_src/engine/game/game-info.gc @@ -1136,8 +1136,8 @@ (set! (-> gp-0 auto-save-status) (the-as uint 1)) (set! (-> gp-0 auto-save-card) 0) (set! (-> gp-0 auto-save-which) -1) - (set! (-> gp-0 pov-camera-handle) (the-as uint #f)) - (set! (-> gp-0 other-camera-handle) (the-as uint #f)) + (set! (-> gp-0 pov-camera-handle) (the-as handle #f)) + (set! (-> gp-0 other-camera-handle) (the-as handle #f)) ) (defmethod get-death-count game-info ((obj game-info) (arg0 symbol)) diff --git a/goal_src/engine/game/main-h.gc b/goal_src/engine/game/main-h.gc index c048e06592..de42ef2723 100644 --- a/goal_src/engine/game/main-h.gc +++ b/goal_src/engine/game/main-h.gc @@ -5,6 +5,7 @@ ;; name in dgo: main-h ;; dgos: GAME, ENGINE +;; Global engine settings: (define *stats-poly* #f) (define *stats-memory* #f) (define *stats-memory-short* #f) @@ -91,7 +92,9 @@ (define *subdivide-draw-mode* 0) (define *ocean-subdivide-draw-mode* 0) -;; don't overwrite the dproc if we're reloading this file. +;; *dproc* is the display process. +;; It is the main loop of the game. +;; don't overwrite the dproc if we're reloading this file (define-perm *dproc* process #f) (define *run* #f) @@ -129,7 +132,7 @@ ) (defun-extern movie? symbol) -(defun-extern set-blackout-frames int uint) +(defun-extern set-blackout-frames int int) (defun-extern on symbol process) (defun-extern off int) -(define-extern set-master-mode (function symbol none)) \ No newline at end of file +(define-extern set-master-mode (function symbol none)) diff --git a/goal_src/engine/game/main.gc b/goal_src/engine/game/main.gc index f118e1d06c..8a93e5871f 100644 --- a/goal_src/engine/game/main.gc +++ b/goal_src/engine/game/main.gc @@ -5,29 +5,1056 @@ ;; name in dgo: main ;; dgos: GAME, ENGINE -(defun movie? () - "Are we in a movie?" - (nonzero? (logand (-> *kernel-context* prevent-from-run) (process-mask movie))) +;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Letterbox and blackout +;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defun set-letterbox-frames ((arg0 uint)) + "Set the letterbox frame counter for arg0 frames in the future" + (let ((v0-0 (+ (-> *display* base-frame-counter) arg0))) + (set! (-> *game-info* letterbox-time) v0-0) + v0-0 + ) + ) + +(defun letterbox () + "Draw the letterbox black rectangles" + (let* ((dma-buf (-> *display* frames (-> *display* on-screen) frame global-buf)) + (gp-0 (-> dma-buf base)) + ) + ;; draw the sprites (gp-0 points to this DMA data) + (draw-sprite2d-xy dma-buf 0 0 512 25 (new 'static 'rgba :a #x80)) + (draw-sprite2d-xy dma-buf 0 199 512 26 (new 'static 'rgba :a #x80)) + (let ((a3-2 (-> dma-buf base))) + (let ((pkt (the-as dma-packet (-> dma-buf base)))) + (set! (-> pkt dma) (new 'static 'dma-tag :id (dma-tag-id next))) + (set! (-> pkt vif0) (new 'static 'vif-tag)) + (set! (-> pkt vif1) (new 'static 'vif-tag)) + (set! (-> dma-buf base) (the-as pointer (&+ pkt 16))) + ) + + ;; add the sprites to debug-draw1, this makes sure it gets drawn at the very end. + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + (bucket-id debug-draw1) + gp-0 + (the-as (pointer dma-tag) a3-2) + ) + ) + ) + (none) ) (defun set-blackout-frames ((arg0 int)) + "Set the blackout frame counter. If arg0 is 0, disables blackout immediately. + Otherwise, this can only be used to increase the blackout period." (cond ((zero? arg0) (set! (-> *game-info* blackout-time) (-> *display* base-frame-counter)) ) (else - (set! (-> *game-info* blackout-time) (max (-> *game-info* blackout-time) (+ (-> *display* base-frame-counter) arg0))) + (set! (-> *game-info* blackout-time) (max (the int (-> *game-info* blackout-time)) + (the int (+ (-> *display* base-frame-counter) arg0)))) ) ) ) -(defun display-loop () - ;; this function doesnt decompile right now - (while #t - (suspend) - ;;(format #t "hello from the display loop~%") +(defun blackout () + "Draw the blackout rectangle, convering the entire screen in darkness." + (let* ((dma-buf (-> *display* frames (-> *display* on-screen) frame global-buf)) + (sprite-dma-data (-> dma-buf base)) + ) + (draw-sprite2d-xy dma-buf 0 0 512 224 (new 'static 'rgba :a #x80)) + (let ((a3-1 (-> dma-buf base))) + (let ((pkt (the-as dma-packet (-> dma-buf base)))) + (set! (-> pkt dma) (new 'static 'dma-tag :id (dma-tag-id next))) + (set! (-> pkt vif0) (new 'static 'vif-tag)) + (set! (-> pkt vif1) (new 'static 'vif-tag)) + (set! (-> dma-buf base) (the-as pointer (&+ pkt 16))) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + (bucket-id debug-draw1) + sprite-dma-data + (the-as (pointer dma-tag) a3-1) + ) + ) ) - + (none) + ) + + +;;;;;;;;;;;;;;;;;;;;; +;; Pause/Master Mode +;;;;;;;;;;;;;;;;;;;;; + +(defun paused? () + "Are we paused? True if *master-mode* = pause, progress is not hidden, or *master-mode* = menu" + (the-as symbol + (or (= *master-mode* 'pause) + (or (and *progress-process* (not (hidden? (-> *progress-process* 0)))) + (= *master-mode* 'menu) + ) + ) + ) + ) + +(defun set-master-mode ((new-mode symbol)) + "Update pause masks for the given mode, and set *master-mode*" + (set! *master-mode* new-mode) + ;;(if *debug-segment* + ;;(menu-respond-to-pause) TODO + ;; ) + (case *master-mode* + (('pause) + + ;; request the pause mask to be set in prevent-from-run. + ;; this will block any process with pause from running, pausing most game objects. + (if (not *debug-pause*) + (set! (-> *setting-control* default process-mask) + (logior (-> *setting-control* default process-mask) (process-mask pause)) + ) + ) + + ;; allow the menu to run. + (set! (-> *setting-control* default process-mask) + (logand (lognot (process-mask menu)) + (-> *setting-control* default process-mask) + ) + ) + + ;; ?? + (set! *pause-lock* #f) + (sound-group-pause (the-as uint 255)) + ;;(hide-progress-screen) TODO + ) + (('menu) + ;; I believe these masks are just to make the progress go away work. + (set! (-> *setting-control* default process-mask) + (logior (-> *setting-control* default process-mask) (process-mask menu)) + ) + (set! (-> *setting-control* default process-mask) + (logand (lognot (process-mask pause progress)) + (-> *setting-control* default process-mask) + ) + ) + (set! *pause-lock* #f) + ;;(hide-progress-screen) TODO + ) + (('progress) + ;; allow menu to run while in progress. + (set! (-> *setting-control* default process-mask) + (logand + (lognot (process-mask menu)) + (-> *setting-control* default process-mask) + ) + ) + + ;; activate the progress menu. + (when (not *progress-process*) + (activate-progress *dproc* 0) + (if (not *progress-process*) ;; if it doesn't want to activate, back to game. + (set-master-mode 'game) + ) + ) + ) + (('game) + ;; allow pausable/menu to run. + (set! (-> *setting-control* default process-mask) + (logand (lognot (process-mask pause menu)) + (-> *setting-control* default process-mask) + ) + ) + (sound-group-continue (the-as uint 255)) + ;;(hide-progress-screen) TODO + ) + ) + ;; apply settings now. + (copy-settings-from-target! *setting-control*) + 0 + (none) + ) + +(define *last-master-mode* 'game) + +(defun toggle-pause () + "Do pause/menu/progress transitions" + (case *master-mode* + (('game) + ;; coming from normal gameplay + (set! *last-master-mode* *master-mode*) + (set-master-mode + (cond + ;; first, check if the controller fell out, and jak is spawned + ((and (nonzero? (logand (-> *cpad-list* cpads 0 valid) 128)) *target*) + (if (or *progress-process* + (not (-> *setting-control* current allow-pause)) + ) + *master-mode* + 'pause ;; no controller, jak spawned, no progress open, pause allowed. + ) + ) + (else + (cond + ;; try to open the debug menu: + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons r3))) + ;; R3 pushed, no target. + (if *debug-segment* + 'menu ;; go to debug menu, when in debug mode. + *master-mode* + ) + ) + (else + (cond + ;; debug mode pause allowed with select or R2. + ((and (or (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons select))) + (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons r2))) + ) + *debug-segment* + ) + ;; pushing select or R2, and debug. allow pause. + 'pause + ) + (else + (cond + ;; ignore anything below here, unless we are pressing start, or debug. + ((and (not *debug-segment*) + (zero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons start))) + ) + *master-mode* + ) + + ;; if you pressed start, and progress isn't allowed, but pause is, do a pause. + ((not (progress-allowed?)) + (if (pause-allowed?) + 'pause + *master-mode* + ) + ) + + ;; pushing start. + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons start))) + ;; toggle between progress/game + (if *progress-process* + 'game + 'progress + ) + ) + (else + ;; nothing requested, stay in game. + *master-mode* + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + (('menu) + ;; in debug menu + (set-master-mode + (cond + ;; push R3 to exit to previous master mode. + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons r3))) + *last-master-mode* + ) + ;; select/R2 to pause. + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons select r2))) + (if *debug-segment* + 'pause + *master-mode* ;; not sure we can get to menu in non-debug... + ) + ) + (else + (cond + ((and (not (movie?)) (not *progress-process*)) + (if (not *target*) + 'pause + 'progress + ) + ) + (else + 'game + ) + ) + ) + ) + ) + (set! *pause-lock* + (and *cheat-mode* + (nonzero? + (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons r2)) + ) + ) + ) + ) + (('pause) + (set! *last-master-mode* *master-mode*) + (set-master-mode + (cond + ;; pause -> debug menu + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons r3))) + (if *debug-segment* + 'menu + *master-mode* + ) + ) + (else + (cond + ;; pause -> single frame advance (R2) + ((and *cheat-mode* + (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons select r2))) + ) + 'game + ) + ;; pause -> game + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons start))) + 'game + ) + (else + *master-mode* + ) + ) + ) + ) + ) + (set! *pause-lock* + (and *cheat-mode* (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons r2)))) + ) + ) + (('progress) + (set-master-mode + (cond + ;; progress -> debug + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons r3))) + (if *debug-segment* + 'menu + *master-mode* + ) + ) + (else + ;; un-progress + (if (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons start))) + *last-master-mode* + *master-mode* + ) + ) + ) + ) + (set! *pause-lock* + (and *cheat-mode* (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons r2)))) + ) + ) + ) + 0 + ) + +(define *screen-filter* + (new 'static 'screen-filter + :draw? #f + :color (new 'static 'rgba :g #x20 :b #x40 :a #x50) + ) + ) + +;;;;;;;;;;;;;;;;;;;;;; +;; Cheat Codes +;;;;;;;;;;;;;;;;;;;;;; + +(define *cheat-temp* (the-as (pointer int32) (malloc 'global 16))) +(define *master-exit* #f) +(define *progress-cheat* #f) + +(defun main-cheats () + "Handle cheat codes and timeout" + + ;; look for codes when L3 is pushed + (when (and (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l3))) + (or *cheat-mode* (= *kernel-boot-message* 'play)) ;; not in demo + ) + (when (nonzero? (-> *cpad-list* cpads 0 button0-rel 0)) + (let ((cheatmode-state (-> *cheat-temp* 0))) + (cond + ((zero? cheatmode-state) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons up))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 1) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons up))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 2) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons down))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 3) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons down))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 4) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons left))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 5) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons right))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 6) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons left))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 7) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons right))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 8) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 9) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 10) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 11) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons circle))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 12) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 13) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons circle))) + ;; got the code! + ;; not sure what this does, but prevents you from having r1 pressed on entry. + (set! (-> *cpad-list* cpads 0 button0-abs 0) + (logand (lognot (pad-buttons r1)) (-> *cpad-list* cpads 0 button0-abs 0)) + ) + (set! (-> *cpad-list* cpads 0 button0-rel 0) + (logand (lognot (pad-buttons r1)) (-> *cpad-list* cpads 0 button0-rel 0)) + ) + + ;; toggle! + (set! *cheat-mode* (not *cheat-mode*)) + (if *cheat-mode* + (sound-play-by-name (static-sound-name "select-menu") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t)) + (sound-play-by-name (static-sound-name "cursor-options") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t)) + ) + (set! (-> *cheat-temp* 0) 0) + ) + (else + ;; bad code, reset. + (set! (-> *cheat-temp* 0) 0) + ) + ) + ) + ) + ) + ) + + ;; cheat mode, part 2 + (when *cheat-mode* + (when (nonzero? (-> *cpad-list* cpads 0 button0-rel 0)) + (let ((cheatmode-debug-state (-> *cheat-temp* 1))) + (cond + ((zero? cheatmode-debug-state) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons circle))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 1) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 2) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons circle))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 3) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 4) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 5) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 6) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons right))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 7) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons left))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 8) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons right))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 9) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons left))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 10) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons down))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 11) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons down))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 12) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons up))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 13) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons up))) + ;; got the code! + (set! (-> *cpad-list* cpads 0 button0-abs 0) + (logand (lognot (pad-buttons r1)) (-> *cpad-list* cpads 0 button0-abs 0)) + ) + (set! (-> *cpad-list* cpads 0 button0-rel 0) + (logand (lognot (pad-buttons r1)) (-> *cpad-list* cpads 0 button0-rel 0)) + ) + ;; toggle between #t and debug. + (set! *cheat-mode* + (if (= *cheat-mode* 'debug) + #t + 'debug + ) + ) + (if *cheat-mode* + (sound-play-by-name (static-sound-name "select-menu") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t)) + (sound-play-by-name (static-sound-name "cursor-options") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t)) + ) + (set! (-> *cheat-temp* 1) 0) + 0 + ) + (else + (set! (-> *cheat-temp* 1) 0) + 0 + ) + ) + ) + ) + ) + ) + ) + + ;; language cheat + (case (scf-get-territory) + ((2) + (when (nonzero? (-> *cpad-list* cpads 0 button0-rel 0)) + (let ((cheat-language-state (-> *cheat-temp* 2))) + (cond + ((zero? cheat-language-state) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons l1))) + (set! (-> *cheat-temp* 2) (+ (-> *cheat-temp* 2) 1)) + ) + (else (set! (-> *cheat-temp* 2) 0)) + ) + ) + ((= cheat-language-state 1) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons r1))) + (set! (-> *cheat-temp* 2) (+ (-> *cheat-temp* 2) 1)) + ) + (else (set! (-> *cheat-temp* 2) 0)) + ) + ) + ((= cheat-language-state 2) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons l1))) + (set! (-> *cheat-temp* 2) (+ (-> *cheat-temp* 2) 1)) + ) + (else (set! (-> *cheat-temp* 2) 0)) + ) + ) + ((= cheat-language-state 3) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons r1))) + (set! (-> *cheat-temp* 2) (+ (-> *cheat-temp* 2) 1)) + ) + (else (set! (-> *cheat-temp* 2) 0)) + ) + ) + ((= cheat-language-state 4) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons triangle))) + (set! (-> *cheat-temp* 2) (+ (-> *cheat-temp* 2) 1)) + ) + (else (set! (-> *cheat-temp* 2) 0)) + ) + ) + ((= cheat-language-state 5) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons circle))) + (set! (-> *cheat-temp* 2) (+ (-> *cheat-temp* 2) 1)) + ) + (else (set! (-> *cheat-temp* 2) 0)) + ) + ) + ((= cheat-language-state 6) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))) + (set! (-> *cheat-temp* 2) (+ (-> *cheat-temp* 2) 1)) + ) + (else (set! (-> *cheat-temp* 2) 0)) + ) + ) + ((= cheat-language-state 7) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))) + ;; got it! + (set! (-> *cpad-list* cpads 0 button0-abs 0) + (logand (lognot (pad-buttons r1)) (-> *cpad-list* cpads 0 button0-abs 0)) + ) + (set! (-> *cpad-list* cpads 0 button0-rel 0) + (logand (lognot (pad-buttons r1)) (-> *cpad-list* cpads 0 button0-rel 0)) + ) + + (set! *progress-cheat* (if *progress-cheat* + #f + 'language + ) + ) + (if *progress-cheat* + (sound-play-by-name (static-sound-name "select-menu") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t)) + (sound-play-by-name (static-sound-name "cursor-options") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t)) + ) + (set! (-> *cheat-temp* 2) 0) + ) + (else + ;; invalid code. + (set! (-> *cheat-temp* 2) 0) + ) + ) + ) + ) + ) + ) + ) + ) + + + ;; debug only PAL code + (when *debug-segment* + (when (nonzero? (-> *cpad-list* cpads 0 button0-rel 0)) + (let ((cheat-pal-state (-> *cheat-temp* 3))) + (cond + ((zero? cheat-pal-state) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))) + (set! (-> *cheat-temp* 3) (+ (-> *cheat-temp* 3) 1)) + ) + (else (set! (-> *cheat-temp* 3) 0)) + ) + ) + ((= cheat-pal-state 1) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))) + (set! (-> *cheat-temp* 3) (+ (-> *cheat-temp* 3) 1)) + ) + (else (set! (-> *cheat-temp* 3) 0)) + ) + ) + ((= cheat-pal-state 2) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons triangle))) + (set! (-> *cheat-temp* 3) (+ (-> *cheat-temp* 3) 1)) + ) + (else (set! (-> *cheat-temp* 3) 0)) + ) + ) + ((= cheat-pal-state 3) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons circle))) + (set! (-> *cheat-temp* 3) (+ (-> *cheat-temp* 3) 1)) + ) + (else (set! (-> *cheat-temp* 3) 0)) + ) + ) + ((= cheat-pal-state 4) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))) + (set! (-> *cheat-temp* 3) (+ (-> *cheat-temp* 3) 1)) + ) + (else (set! (-> *cheat-temp* 3) 0)) + ) + ) + ((= cheat-pal-state 5) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))) + (set! (-> *cheat-temp* 3) (+ (-> *cheat-temp* 3) 1)) + ) + (else (set! (-> *cheat-temp* 3) 0)) + ) + ) + ((= cheat-pal-state 6) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons triangle))) + (set! (-> *cheat-temp* 3) (+ (-> *cheat-temp* 3) 1)) + ) + (else (set! (-> *cheat-temp* 3) 0)) + ) + ) + ((= cheat-pal-state 7) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons circle))) + (set! (-> *cpad-list* cpads 0 button0-abs 0) + (logand (lognot (pad-buttons r1)) (-> *cpad-list* cpads 0 button0-abs 0)) + ) + (set! (-> *cpad-list* cpads 0 button0-rel 0) + (logand (lognot (pad-buttons r1)) (-> *cpad-list* cpads 0 button0-rel 0)) + ) + (set! *progress-cheat* + (if *progress-cheat* + #f + 'pal + ) + ) + (if *progress-cheat* + (sound-play-by-name (static-sound-name "select-menu") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t)) + (sound-play-by-name (static-sound-name "cursor-options") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t)) + ) + (set! (-> *cheat-temp* 3) 0) + ) + (else + ;; bad code. + (set! (-> *cheat-temp* 3) 0) + 0 + ) + ) + ) + ) + ) + ) + ) + ) + + + ;; if cheating, handle the inputs + (when (and (= *cheat-mode* 'debug) (not *debug-segment*)) + + ;; target start/stop with l1/r1/l2/r2 + (when (and (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l1))) + (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l2))) + (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons r1))) + (nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons r2))) + ) + (if *target* + (stop 'debug) + (start 'play (get-or-create-continue! *game-info*)) + ) + ) + + + ;; reinitialize to title-start with left, up, select + (if (and (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons left))) + (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons up))) + (nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons select))) + ) + (initialize! *game-info* 'game (the-as game-save #f) "title-start") + ) + + ;; push R3 to print global heap status. not very useful. + (if (nonzero? (logand (-> *cpad-list* cpads 1 button0-rel 0) (pad-buttons r3))) + (inspect global) + ) + + ;; push R3 to display IOP memory stats + (when (nonzero? (logand (-> *cpad-list* cpads 1 button0-abs 0) (pad-buttons r3))) + ;; grab a dma buffer + (let* ((dma-buff (if *debug-segment* + (-> *display* frames (-> *display* on-screen) frame debug-buf) + (-> *display* frames (-> *display* on-screen) frame global-buf) + ) + ) + (dma-start (-> dma-buff base)) + ) + (show-iop-memory dma-buff) + (let ((a3-9 (-> dma-buff base))) + (let ((dma-pkt (the-as dma-packet (-> dma-buff base)))) + (set! (-> dma-pkt dma) (new 'static 'dma-tag :id (dma-tag-id next))) + (set! (-> dma-pkt vif0) (new 'static 'vif-tag)) + (set! (-> dma-pkt vif1) (new 'static 'vif-tag)) + (set! (-> dma-buff base) (&+ (the-as pointer dma-pkt) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + (bucket-id debug-draw0) + dma-start + (the-as (pointer dma-tag) a3-9) + ) + ) + ) + ) + + + ;; push triangle to see level info + (if (nonzero? (logand (-> *cpad-list* cpads 1 button0-rel 0) (pad-buttons triangle))) + (set! *display-level-border* (not *display-level-border*)) + ) + ) + + ;; handle timeouts + (when (!= *kernel-boot-message* 'play) + (let ((timeout (scf-get-timeout)) + (inactive-timeout (scf-get-inactive-timeout)) + ) + (when (and (or + ;; aboslute timout elapsed. + (and (nonzero? timeout) + (>= (the-as int (+ -300000 (the-as int (-> *display* real-frame-counter)))) (the int (* 300.0 (the float timeout)))) + ) + (and (nonzero? inactive-timeout) + (>= (the-as int (- + (-> *display* base-frame-counter) + (-> *cpad-list* cpads 0 change-time) + ) + ) + (the int (* 300.0 (the float inactive-timeout))) + ) + ) + (= *master-exit* 'force) + ) + (progress-allowed?) + (!= *master-exit* #t) + ) + + ;; spawn a process that blacks out the screen, turns things off, and kills the game. + (let ((game-end-proc (get-process *default-dead-pool* process #x4000))) + (if (when game-end-proc + (let ((t9-28 (method-of-type process activate))) + (t9-28 + game-end-proc + *default-pool* + 'process + (the-as pointer #x70004000) + ) + ) + ((the-as (function cpu-thread function none) set-to-run) + (-> game-end-proc main-thread) + (lambda () + (set-blackout-frames #x7530) + (set! (-> *setting-control* default allow-pause) #f) + (set! (-> *setting-control* default allow-progress) #f) + (copy-settings-from-target! *setting-control*) + (set! (-> *setting-control* default sfx-volume) 0.0) + (set! (-> *setting-control* default music-volume) 0.0) + (set! (-> *setting-control* default dialog-volume) 0.0) + (set! (-> *setting-control* default ambient-volume) 0.0) + (let ((gp-0 (-> *display* base-frame-counter))) + (until (begin + (suspend) + (>= (the-as int (- (-> *display* base-frame-counter) gp-0)) 30) + ) + (empty) + ) + ) + (kernel-shutdown) + (none) + ) + ) + (-> game-end-proc ppointer) + ) + ;; failed to create process, just die. + (set! *master-exit* #t) + ) + ) + ) + ) + ) + 0 + ) + +(defun movie? () + "Are we in a movie?" + (nonzero? (logand (-> *kernel-context* prevent-from-run) (process-mask movie))) + ) + + +(defun display-loop () + "This is in progress..." + + ;; increase our stack size. + (with-pp + (stack-size-set! (-> pp main-thread) 512) + ) + + (let ((disp *display*)) + ;; todo spad terrain context + (set! *teleport* #t) + (update-per-frame-settings! *setting-control*) + ;;(init-time-of-day-context *time-of-day-context*) TODO + ;;(display-sync disp) + ;; (swap-display disp) + ;; touching list + ;; bler init + ;; collide dma + (suspend) + (while *run* + ;; blerc + ;; texscroll + ;; ripple + ;; music pick + ;; sound/flava + ;; do ambients + + ;; math engine. + ;; debug hook + ;; main cheats + ;; update-camera + ;; draw hook + ;; menu hook + ;; update-current-level-availabe-to-progress + ;; update-task-hitns + ;; load-level-textu-files + (load-level-text-files -1) + ;; sync/timeout + + ;; depth cue + ;; screen filter + ;; letterbox + ;; blackout + ;; debug draw + ;; deci count + ;; file info + ;; pause text + ;; iop info + ;; mc info + ;; dma memory usage + ;; console buffers + ;; swap display + ;; particles + ;; vif0 collid + ;; swap sound + ;; str play + ;; level update + ;; run mc + ;; auto save check + ;; suspend + + (suspend) + ) + ) + + 0 ) diff --git a/goal_src/engine/game/settings-h.gc b/goal_src/engine/game/settings-h.gc index 314e76be89..bb6b5e1a2e 100644 --- a/goal_src/engine/game/settings-h.gc +++ b/goal_src/engine/game/settings-h.gc @@ -5,13 +5,29 @@ ;; name in dgo: settings-h ;; dgos: GAME, ENGINE -;; was manually done +;; The settings system handles settings transitions. +;; There are three copies of setting data: +;; - default +;; - target +;; - current + +;; Processes may request a setting change. Once the process dies, the change will be reverted. + +;; Internally, the frame's current settings are determined with this process: +;; 1). The target settings are set to default. +;; 2). Any changes to settings requested by processes are applied to target +;; NOTE: these requests are _not_ cleared on every frame. +;; 3). Target and current are compared and updated. Mostly this is just copying, but +;; some settings may also call a function when they are changed. + + +;; The full setting state. (deftype setting-data (structure) ((border-mode symbol :offset-assert 0) (sfx-volume float :offset-assert 4) (music-volume float :offset-assert 8) (dialog-volume float :offset-assert 12) - (process-mask uint32 :offset-assert 16) + (process-mask process-mask :offset-assert 16) (common-page int32 :offset-assert 20) (language int64 :offset-assert 24) (screenx int32 :offset-assert 32) @@ -97,6 +113,9 @@ obj ) + +;; The setting-control manages the current/target/default system. +;; The setting requests are managed by the engine. (deftype setting-control (basic) ((current setting-data :inline :offset-assert 16) (target setting-data :inline :offset-assert 224) @@ -126,7 +145,8 @@ s4-0 ) - +;; believed unused. +;; possibly the PS2 BIOS time type. (deftype scf-time (structure) ((stat uint8 :offset-assert 0) (second uint8 :offset-assert 1) @@ -143,9 +163,3 @@ ) (define-extern *setting-control* setting-control) - -;; TODO - defined in the kernel -(define-extern scf-get-volume (function int)) -(define-extern scf-get-language (function uint)) -(define-extern scf-get-aspect (function uint)) -(define-extern *boot-video-mode* int) diff --git a/goal_src/engine/game/settings.gc b/goal_src/engine/game/settings.gc index 10cb2b8604..62cba6ac3c 100644 --- a/goal_src/engine/game/settings.gc +++ b/goal_src/engine/game/settings.gc @@ -12,250 +12,223 @@ (let ((conn (the-as connection (-> arg0 alive-list-end))) (s4-0 (-> arg0 alive-list-end prev0)) ) - (while (!= (the-as connectable conn) (-> arg0 alive-list)) - (let ((v1-1 (-> conn param0))) - (cond - ((= v1-1 'border-mode) - (set! (-> obj border-mode) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'allow-look-around) - (set! (-> obj allow-look-around) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'ocean-off) - (set! (-> obj ocean-off) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'music) - (set! (-> obj music) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'process-mask) - (let ((v1-6 (-> conn param1))) - (cond - ((= (the-as symbol v1-6) 'set) - (set! - (-> obj process-mask) - (logior - (-> obj process-mask) - (the-as uint (the-as int (-> conn param3))) - ) - ) - ) - ((= v1-6 'clear) - (set! - (-> obj process-mask) - (logand - (-> obj process-mask) - (the-as uint (lognot (the-as uint (-> conn param3)))) - ) - ) - ) - ((= v1-6 'abs) - (set! - (-> obj process-mask) - (the-as uint (the-as int (-> conn param3))) - ) - ) + (while (!= (the-as connectable conn) (-> arg0 alive-list)) + (case (-> conn param0) + (('border-mode) + (set! (-> obj border-mode) (the-as symbol (-> conn param1))) ) - ) - ) - ((= v1-1 'sfx-volume) - (when - (or - (zero? - (logand - (-> *kernel-context* prevent-from-run) - (process-mask progress) + (('allow-look-around) + (set! (-> obj allow-look-around) (the-as symbol (-> conn param1))) + ) + (('ocean-off) + (set! (-> obj ocean-off) (the-as symbol (-> conn param1))) + ) + (('music) + (set! (-> obj music) (the-as symbol (-> conn param1))) + ) + (('process-mask) + (case (-> conn param1) + (('set) + (set! + (-> obj process-mask) + (logior + (-> obj process-mask) + (the-as uint (the-as int (-> conn param3))) + ) + ) + ) + (('clear) + (set! + (-> obj process-mask) + (logand + (-> obj process-mask) + (the-as uint (the-as uint (lognot (the-as uint (-> conn param3))))) + ) + ) + ) + (('abs) + (set! + (-> obj process-mask) + (the-as process-mask (the-as int (-> conn param3))) + ) + ) ) - ) - (let ((v1-18 (get-process conn)) - (a0-22 *progress-process*) + ) + (('sfx-volume) + (when (or (zero? (logand (-> *kernel-context* prevent-from-run) (process-mask progress))) + (let ((v1-18 (get-process conn)) + (a0-22 *progress-process*) + ) + (= v1-18 (if a0-22 + (-> a0-22 0 self) + ) + ) + ) + ) + (let ((v1-20 (the-as symbol (-> conn param1)))) + (if (= v1-20 'rel) + (set! (-> obj sfx-volume) + (* (* 0.01 (the-as float (-> conn param2))) (-> obj sfx-volume)) + ) + (set! (-> obj sfx-volume) (the-as float (-> conn param2))) + ) + ) + ) + ) + (('music-volume) + (let ((v1-25 (the-as symbol (-> conn param1)))) + (if (= v1-25 'rel) + (set! (-> obj music-volume) + (* (* 0.01 (the-as float (-> conn param2))) (-> obj music-volume)) + ) + (set! (-> obj music-volume) (the-as float (-> conn param2))) ) - (= v1-18 (if a0-22 - (-> a0-22 0 self) - ) ) - ) ) - (let ((v1-20 (the-as symbol (-> conn param1)))) - (if (= v1-20 'rel) - (set! - (-> obj sfx-volume) - (* (* 0.01 (the-as float (-> conn param2))) (-> obj sfx-volume)) + (('ambient-volume) + (let ((v1-30 (the-as symbol (-> conn param1)))) + (if (= v1-30 'rel) + (set! (-> obj ambient-volume) + (* (* 0.01 (the-as float (-> conn param2))) (-> obj ambient-volume)) + ) + (set! (-> obj ambient-volume) (the-as float (-> conn param2))) + ) ) - (set! (-> obj sfx-volume) (the-as float (-> conn param2))) - ) ) - ) - ) - ((= v1-1 'music-volume) - (let ((v1-25 (the-as symbol (-> conn param1)))) - (if (= v1-25 'rel) - (set! - (-> obj music-volume) - (* (* 0.01 (the-as float (-> conn param2))) (-> obj music-volume)) - ) - (set! (-> obj music-volume) (the-as float (-> conn param2))) - ) - ) - ) - ((= v1-1 'ambient-volume) - (let ((v1-30 (the-as symbol (-> conn param1)))) - (if (= v1-30 'rel) - (set! - (-> obj ambient-volume) - (* (* 0.01 (the-as float (-> conn param2))) (-> obj ambient-volume)) - ) - (set! (-> obj ambient-volume) (the-as float (-> conn param2))) - ) - ) - ) - ((= v1-1 'dialog-volume) - (let ((v1-35 (the-as symbol (-> conn param1)))) - (if (= v1-35 'rel) - (set! - (-> obj dialog-volume) - (* (* 0.01 (the-as float (-> conn param2))) (-> obj dialog-volume)) - ) - (set! (-> obj dialog-volume) (the-as float (-> conn param2))) - ) - ) - ) - ((= v1-1 'sfx-volume-movie) - (let ((v1-40 (the-as symbol (-> conn param1)))) - (if (= v1-40 'rel) - (set! - (-> obj sfx-volume-movie) - (* (* 0.01 (the-as float (-> conn param2))) (-> obj sfx-volume-movie)) - ) - (set! (-> obj sfx-volume-movie) (the-as float (-> conn param2))) - ) - ) - ) - ((= v1-1 'music-volume-movie) - (let ((v1-45 (the-as symbol (-> conn param1)))) - (if (= v1-45 'rel) - (set! - (-> obj music-volume-movie) - (* - (* 0.01 (the-as float (-> conn param2))) - (-> obj music-volume-movie) + (('dialog-volume) + (let ((v1-35 (the-as symbol (-> conn param1)))) + (if (= v1-35 'rel) + (set! (-> obj dialog-volume) + (* (* 0.01 (the-as float (-> conn param2))) (-> obj dialog-volume)) + ) + (set! (-> obj dialog-volume) (the-as float (-> conn param2))) + ) ) - ) - (set! (-> obj music-volume-movie) (the-as float (-> conn param2))) ) - ) - ) - ((= v1-1 'ambient-volume-movie) - (let ((v1-50 (the-as symbol (-> conn param1)))) - (if (= v1-50 'rel) - (set! - (-> obj ambient-volume-movie) - (* - (* 0.01 (the-as float (-> conn param2))) - (-> obj ambient-volume-movie) + (('sfx-volume-movie) + (let ((v1-40 (the-as symbol (-> conn param1)))) + (if (= v1-40 'rel) + (set! (-> obj sfx-volume-movie) + (* (* 0.01 (the-as float (-> conn param2))) (-> obj sfx-volume-movie)) + ) + (set! (-> obj sfx-volume-movie) (the-as float (-> conn param2))) + ) ) - ) - (set! (-> obj ambient-volume-movie) (the-as float (-> conn param2))) ) - ) - ) - ((= v1-1 'dialog-volume-hint) - (let ((v1-55 (the-as symbol (-> conn param1)))) - (if (= v1-55 'rel) - (set! - (-> obj dialog-volume-hint) - (* - (* 0.01 (the-as float (-> conn param2))) - (-> obj dialog-volume-hint) + (('music-volume-movie) + (let ((v1-45 (the-as symbol (-> conn param1)))) + (if (= v1-45 'rel) + (set! (-> obj music-volume-movie) + (* (* 0.01 (the-as float (-> conn param2))) + (-> obj music-volume-movie) + ) + ) + (set! (-> obj music-volume-movie) (the-as float (-> conn param2))) + ) ) - ) - (set! (-> obj dialog-volume-hint) (the-as float (-> conn param2))) ) - ) - ) - ((= v1-1 'sound-flava) - (when (>= (the-as float (-> conn param2)) (-> obj sound-flava-priority)) - (set! (-> obj sound-flava) (the-as uint (the-as int (-> conn param3)))) - (set! (-> obj sound-flava-priority) (the-as float (-> conn param2))) - ) - ) - ((= v1-1 'bg-r) - (set! (-> obj bg-r) (the-as float (-> conn param2))) - ) - ((= v1-1 'bg-g) - (set! (-> obj bg-g) (the-as float (-> conn param2))) - ) - ((= v1-1 'bg-b) - (set! (-> obj bg-b) (the-as float (-> conn param2))) - ) - ((= v1-1 'bg-a) - (set! (-> obj bg-a) (the-as float (-> conn param2))) - ) - ((= v1-1 'bg-a-speed) - (set! (-> obj bg-a-speed) (the-as float (-> conn param2))) - ) - ((= v1-1 'bg-a-force) - (set! (-> obj bg-a-force) (the-as float (-> conn param2))) - ) - ((= v1-1 'language) - (set! (-> obj language) (the-as int (-> conn param3))) - ) - ((= v1-1 'vibration) - (set! (-> obj vibration) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'auto-save) - (set! (-> obj auto-save) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'allow-pause) - (set! (-> obj allow-pause) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'allow-progress) - (set! (-> obj allow-progress) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'play-hints) - (set! (-> obj play-hints) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'movie) - (set! (-> obj movie) (the-as (pointer progress) (-> conn param1))) - ) - ((= v1-1 'talking) - (set! (-> obj talking) (the-as (pointer progress) (-> conn param1))) - ) - ((= v1-1 'spooling) - (set! (-> obj spooling) (the-as (pointer progress) (-> conn param1))) - ) - ((= v1-1 'hint) - (set! (-> obj hint) (the-as (pointer process) (-> conn param1))) - ) - ((= v1-1 'ambient) - (set! (-> obj ambient) (the-as (pointer progress) (-> conn param1))) - ) - ((= v1-1 'common-page) - (let ((v1-89 (-> conn param1))) - (cond - ((= (the-as symbol v1-89) 'set) - (set! - (-> obj common-page) - (logior (-> obj common-page) (the-as int (-> conn param3))) + (('ambient-volume-movie) + (let ((v1-50 (the-as symbol (-> conn param1)))) + (if (= v1-50 'rel) + (set! (-> obj ambient-volume-movie) + (* (* 0.01 (the-as float (-> conn param2))) + (-> obj ambient-volume-movie) + ) + ) + (set! (-> obj ambient-volume-movie) (the-as float (-> conn param2))) + ) ) - ) - ((= v1-89 'clear) - (set! - (-> obj common-page) - (logand - (-> obj common-page) - (the-as int (the-as uint (lognot (the-as uint (-> conn param3))))) + ) + (('dialog-volume-hint) + (let ((v1-55 (the-as symbol (-> conn param1)))) + (if (= v1-55 'rel) + (set! (-> obj dialog-volume-hint) + (* (* 0.01 (the-as float (-> conn param2))) + (-> obj dialog-volume-hint) + ) + ) + (set! (-> obj dialog-volume-hint) (the-as float (-> conn param2))) + ) + ) + ) + (('sound-flava) + (when (>= (the-as float (-> conn param2)) (-> obj sound-flava-priority)) + (set! (-> obj sound-flava) (the-as uint (the-as int (-> conn param3)))) + (set! (-> obj sound-flava-priority) (the-as float (-> conn param2))) + ) + ) + (('bg-r) + (set! (-> obj bg-r) (the-as float (-> conn param2))) + ) + (('bg-g) + (set! (-> obj bg-g) (the-as float (-> conn param2))) + ) + (('bg-b) + (set! (-> obj bg-b) (the-as float (-> conn param2))) + ) + (('bg-a) + (set! (-> obj bg-a) (the-as float (-> conn param2))) + ) + (('bg-a-speed) + (set! (-> obj bg-a-speed) (the-as float (-> conn param2))) + ) + (('bg-a-force) + (set! (-> obj bg-a-force) (the-as float (-> conn param2))) + ) + (('language) + (set! (-> obj language) (the-as int (-> conn param3))) + ) + (('vibration) + (set! (-> obj vibration) (the-as symbol (-> conn param1))) + ) + (('auto-save) + (set! (-> obj auto-save) (the-as symbol (-> conn param1))) + ) + (('allow-pause) + (set! (-> obj allow-pause) (the-as symbol (-> conn param1))) + ) + (('allow-progress) + (set! (-> obj allow-progress) (the-as symbol (-> conn param1))) + ) + (('play-hints) + (set! (-> obj play-hints) (the-as symbol (-> conn param1))) + ) + (('movie) + (set! (-> obj movie) (the-as (pointer progress) (-> conn param1))) + ) + (('talking) + (set! (-> obj talking) (the-as (pointer progress) (-> conn param1))) + ) + (('spooling) + (set! (-> obj spooling) (the-as (pointer progress) (-> conn param1))) + ) + (('hint) + (set! (-> obj hint) (the-as (pointer process) (-> conn param1))) + ) + (('ambient) + (set! (-> obj ambient) (the-as (pointer progress) (-> conn param1))) + ) + (('common-page) + (case (-> conn param1) + (('set) + (set! (-> obj common-page) + (logior (-> obj common-page) (the-as int (-> conn param3))) + ) + ) + (('clear) + (set! (-> obj common-page) + (logand (-> obj common-page) + (the-as int (the-as uint (lognot (the-as uint (-> conn param3))))) + ) + ) ) ) - ) ) ) - ) + (set! conn (the-as connection s4-0)) + (set! s4-0 (-> (the-as connectable conn) prev0)) ) - ) - (set! conn (the-as connection s4-0)) - (set! s4-0 (-> (the-as connectable conn) prev0)) ) - ) obj ) @@ -360,10 +333,7 @@ (set! (-> gp-0 dialog-volume-hint) (-> s5-0 dialog-volume-hint)) (set! (-> gp-0 process-mask) (-> s5-0 process-mask)) ) - (set! - (-> *kernel-context* prevent-from-run) - (the-as process-mask (-> gp-0 process-mask)) - ) + (set! (-> *kernel-context* prevent-from-run) (-> gp-0 process-mask)) gp-0 ) ) @@ -502,17 +472,16 @@ (set! (-> *level* border?) (-> gp-0 border-mode)) (set! (-> *texture-pool* common-page-mask) (-> gp-0 common-page)) (set! (-> *cpad-list* cpads 0 buzz) (-> gp-0 vibration)) - (let ((v1-64 (-> gp-0 ocean-off))) - (cond - ((= v1-64 #t) + + (case (-> gp-0 ocean-off) + ((#t) (set! *ocean-off* #t) ) - ((= v1-64 'mid) - (set! *ocean-mid-off* #t) - ) - ((= v1-64 'near) - (set! *ocean-near-off* #t) - ) + (('mid) + (set! *ocean-mid-off* #t) + ) + (('near) + (set! *ocean-near-off* #t) ) ) gp-0 @@ -563,7 +532,7 @@ ) ) (set! (-> gp-0 language) (the-as int (scf-get-language))) - (set! (-> gp-0 process-mask) (the-as uint 65)) + (set! (-> gp-0 process-mask) (process-mask execute sleep)) (set! (-> gp-0 screenx) 0) (set! (-> gp-0 screeny) 0) (set! (-> gp-0 vibration) #t) diff --git a/goal_src/engine/game/task/hint-control.gc b/goal_src/engine/game/task/hint-control.gc index 156b15ef92..96608adbba 100644 --- a/goal_src/engine/game/task/hint-control.gc +++ b/goal_src/engine/game/task/hint-control.gc @@ -491,44 +491,38 @@ ;; TODO - defined in progress-static (define-extern *level-task-data-remap* (array int32)) -;; definition for function update-task-hints -;; INFO: Return type mismatch int vs none. + (defun update-task-hints () (when *target* - (let ((a0-0 (+ (-> *target* current-level info index) -1)) - (v1-7 (-> *game-info* task-hint-control)) - ) - (when (and (>= a0-0 0) (< a0-0 (-> *level-task-data-remap* length))) - (let ((a0-3 (-> *level-task-data-remap* a0-0))) - (when (< a0-3 (-> v1-7 length)) - (let ((gp-0 (-> v1-7 a0-3 tasks))) - (when (and (!= gp-0 0) (nonzero? (-> gp-0 length))) - (let ((s5-0 (-> *game-info* in-level-time a0-3))) - (dotimes (s4-0 (-> gp-0 length)) - (let - ((v1-17 (get-task-status (the-as game-task (-> gp-0 s4-0 task))))) - (when - (or - (= v1-17 (task-status need-hint)) - (= v1-17 (task-status unknown)) - ) - (if (< (-> gp-0 s4-0 delay) s5-0) - (close-specific-task! - (the-as game-task (-> gp-0 s4-0 task)) - (task-status need-hint) - ) - ) - ) - ) - ) + (let ((a0-0 (+ (-> *target* current-level info index) -1)) + (v1-7 (-> *game-info* task-hint-control)) + ) + (when (and (>= a0-0 0) (< a0-0 (-> *level-task-data-remap* length))) + (let ((a0-3 (-> *level-task-data-remap* a0-0))) + (when (< a0-3 (-> v1-7 length)) + (let ((gp-0 (-> v1-7 a0-3 tasks))) + (when (and (!= gp-0 0) (nonzero? (-> gp-0 length))) + (let ((s5-0 (-> *game-info* in-level-time a0-3))) + (dotimes (s4-0 (-> gp-0 length)) + (case (get-task-status (the-as game-task (-> gp-0 s4-0 task))) + (((task-status need-hint) (task-status unknown)) + (if (< (-> gp-0 s4-0 delay) s5-0) + (close-specific-task! + (the-as game-task (-> gp-0 s4-0 task)) + (task-status need-hint) + ) + ) + ) + ) + ) + ) + ) + ) + ) ) - ) ) - ) ) - ) ) - ) 0 (none) ) diff --git a/goal_src/engine/game/video.gc b/goal_src/engine/game/video.gc index d53fca680f..8279cf9be4 100644 --- a/goal_src/engine/game/video.gc +++ b/goal_src/engine/game/video.gc @@ -8,9 +8,8 @@ ;; definition for function set-video-mode ;; INFO: Return type mismatch int vs none. (defun set-video-mode ((arg0 symbol)) - (let ((v1-0 arg0)) - (cond - ((= v1-0 'ntsc) + (case arg0 + (('ntsc) (set! (-> *video-parms* screen-sy) 224) (set! (-> *setting-control* default screenx) 0) (set! (-> *setting-control* default screeny) 8) @@ -22,7 +21,7 @@ (set! (-> *math-camera* y-clip) 448.0) (set! (-> *shadow-data* texoffset y) 112.5) ) - ((= v1-0 'pal) + (('pal) (set! (-> *video-parms* screen-sy) 256) (set! (-> *setting-control* default screenx) 0) (set! (-> *setting-control* default screeny) 24) @@ -35,7 +34,6 @@ (set! (-> *shadow-data* texoffset y) 128.5) ) ) - ) (set-time-ratios *display* (-> *display* time-ratio)) (set! (-> *video-parms* reset-video-mode) #t) (set! (-> *video-parms* screen-hy) (/ (-> *video-parms* screen-sy) 2)) @@ -58,12 +56,16 @@ (set! (-> *video-parms* relative-y-scale-reciprical) 1.0) (set! *profile-y* (+ (-> *video-parms* screen-miny) 8)) (set! (-> *video-parms* set-video-mode) #t) - (set-hud-aspect-ratio (get-aspect-ratio) arg0) + + ;; NOTE: added nonzero check + (if (nonzero? set-hud-aspect-ratio) + (set-hud-aspect-ratio (get-aspect-ratio) arg0) + ) (if *progress-process* - (TODO-RENAME-23 (-> *progress-process* 0) (get-aspect-ratio) arg0) - ) + (TODO-RENAME-23 (-> *progress-process* 0) (get-aspect-ratio) arg0) + ) (let ((v0-3 0)) - ) + ) (none) ) @@ -75,28 +77,30 @@ ;; definition for function set-aspect-ratio ;; INFO: Return type mismatch int vs none. (defun set-aspect-ratio ((arg0 symbol)) - (let ((v1-0 arg0)) - (cond - ((= v1-0 'aspect4x3) + (case arg0 + (('aspect4x3) (set! (-> *video-parms* relative-x-scale) 1.0) (set! (-> *video-parms* relative-x-scale-reciprical) 1.0) ) - ((= v1-0 'aspect16x9) + (('aspect16x9) (set! (-> *video-parms* relative-x-scale) 0.75) (set! (-> *video-parms* relative-x-scale-reciprical) 1.3333334) ) ) - ) (set! (-> *font-default-matrix* vector 0 x) (-> *video-parms* relative-x-scale) ) - (set-hud-aspect-ratio arg0 (get-video-mode)) + + ;; NOTE: added. + (if (nonzero? set-hud-aspect-ratio) + (set-hud-aspect-ratio arg0 (get-video-mode)) + ) (if *progress-process* - (TODO-RENAME-23 (-> *progress-process* 0) arg0 (get-video-mode)) - ) + (TODO-RENAME-23 (-> *progress-process* 0) arg0 (get-video-mode)) + ) (let ((v0-2 0)) - ) + ) (none) ) diff --git a/goal_src/engine/gfx/capture.gc b/goal_src/engine/gfx/capture.gc index 03ee86b1bb..f8cc225a83 100644 --- a/goal_src/engine/gfx/capture.gc +++ b/goal_src/engine/gfx/capture.gc @@ -5,6 +5,9 @@ ;; name in dgo: capture ;; dgos: GAME, ENGINE +;; Functions for taking a screenshot of VRAM. +;; These are debug-only and leak memory. + ;; vif/gif tags to do a transfer of data from VRAM to EE memory. (deftype gs-store-image-packet (structure) ((vifcode vif-tag 4 :offset-assert 0) diff --git a/goal_src/engine/gfx/font-h.gc b/goal_src/engine/gfx/font-h.gc index 1f0510a0da..74f5f8768b 100644 --- a/goal_src/engine/gfx/font-h.gc +++ b/goal_src/engine/gfx/font-h.gc @@ -5,6 +5,9 @@ ;; name in dgo: font-h ;; dgos: GAME, ENGINE +;; The font system draws all of the strings. +;; The font textures live in the upper 8 bits of the 24-bit texture format depth buffer. + (deftype char-verts (structure) ((pos vector 4 :inline :offset-assert 0) (color vector 4 :inline :offset-assert 64) diff --git a/goal_src/engine/gfx/generic/generic.gc b/goal_src/engine/gfx/generic/generic.gc index 8f7c5727d4..e73f4b4f82 100644 --- a/goal_src/engine/gfx/generic/generic.gc +++ b/goal_src/engine/gfx/generic/generic.gc @@ -135,7 +135,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - s3-0 + (the bucket-id s3-0) ;; TODO, correct types here s2-0 (the-as (pointer dma-tag) a3-0) ) diff --git a/goal_src/engine/gfx/hw/display.gc b/goal_src/engine/gfx/hw/display.gc index 51bfae64f7..84b8e703e6 100644 --- a/goal_src/engine/gfx/hw/display.gc +++ b/goal_src/engine/gfx/hw/display.gc @@ -33,23 +33,21 @@ ;; calculations from getting huge. (let ((ratio (fmin 4.0 slowdown))) (set! (-> obj time-ratio) ratio) - (let ((v1-0 (get-video-mode))) - (cond - ((= v1-0 'pal) - (set! (-> obj time-adjust-ratio) (* 1.2 ratio)) - (set! (-> obj seconds-per-frame) (* 0.02 ratio)) - (set! (-> obj frames-per-second) (* 50.0 (/ 1.0 ratio))) - ;; 6 "ticks" per frame * 50 fps = 300 ticks per second. - (set! (-> obj time-factor) 6.0) - ) - (else - (set! (-> obj time-adjust-ratio) ratio) - (set! (-> obj seconds-per-frame) (* 0.016666668 ratio)) - (set! (-> obj frames-per-second) (* 60.0 (/ 1.0 ratio))) - ;; 5 "ticks" per frame * 60 fps = 300 ticks per second. - (set! (-> obj time-factor) 5.0) - ) - ) + (case (get-video-mode) + (('pal) + (set! (-> obj time-adjust-ratio) (* 1.2 ratio)) + (set! (-> obj seconds-per-frame) (* 0.02 ratio)) + (set! (-> obj frames-per-second) (* 50.0 (/ 1.0 ratio))) + ;; 6 "ticks" per frame * 50 fps = 300 ticks per second. + (set! (-> obj time-factor) 6.0) + ) + (else + (set! (-> obj time-adjust-ratio) ratio) + (set! (-> obj seconds-per-frame) (* 0.016666668 ratio)) + (set! (-> obj frames-per-second) (* 60.0 (/ 1.0 ratio))) + ;; 5 "ticks" per frame * 60 fps = 300 ticks per second. + (set! (-> obj time-factor) 5.0) + ) ) ) (-> obj time-ratio) diff --git a/goal_src/engine/gfx/hw/gs.gc b/goal_src/engine/gfx/hw/gs.gc index b820a88cab..7a95a53bb5 100644 --- a/goal_src/engine/gfx/hw/gs.gc +++ b/goal_src/engine/gfx/hw/gs.gc @@ -86,26 +86,23 @@ ) ) - (defun psm->string ((arg0 gs-psm)) "Get the name of a texture format." - (let ((v1-0 arg0)) - (cond - ((= v1-0 (gs-psm mz16s)) "mz16s") - ((= v1-0 (gs-psm mz16)) "mz16") - ((= v1-0 (gs-psm mz24)) "mz24") - ((= v1-0 (gs-psm mz32)) "mz32") - ((= v1-0 (gs-psm mt4hh)) "mt4hh") - ((= v1-0 (gs-psm mt4hl)) "mt4hl") - ((= v1-0 (gs-psm mt8h)) "mt8h") - ((= v1-0 (gs-psm mt4)) "mt4") - ((= v1-0 (gs-psm mt8)) "mt8") - ((= v1-0 (gs-psm ct16s)) "ct16s") - ((= v1-0 (gs-psm ct16)) "ct16") - ((= v1-0 (gs-psm ct24)) "ct24") - ((zero? v1-0) "ct32") - (else "*unknown*") - ) + (case arg0 + (((gs-psm mz16s)) "mz16s") + (((gs-psm mz16)) "mz16") + (((gs-psm mz24)) "mz24") + (((gs-psm mz32)) "mz32") + (((gs-psm mt4hh)) "mt4hh") + (((gs-psm mt4hl)) "mt4hl") + (((gs-psm mt8h)) "mt8h") + (((gs-psm mt4)) "mt4") + (((gs-psm mt8)) "mt8") + (((gs-psm ct16s)) "ct16s") + (((gs-psm ct16)) "ct16") + (((gs-psm ct24)) "ct24") + (((gs-psm ct32)) "ct32") + (else "*unknown*") ) ) diff --git a/goal_src/engine/gfx/lights-h.gc b/goal_src/engine/gfx/lights-h.gc index 4afba9fb98..0a7f7464b2 100644 --- a/goal_src/engine/gfx/lights-h.gc +++ b/goal_src/engine/gfx/lights-h.gc @@ -5,6 +5,9 @@ ;; name in dgo: lights-h ;; dgos: GAME, ENGINE +;; It seems like some of these are unused. +;; The commonly used lights are vu-lights and light-group. + (deftype vu-lights (structure) ((direction vector 3 :inline :offset-assert 0) (color vector 3 :inline :offset-assert 48) diff --git a/goal_src/engine/gfx/ocean/ocean-h.gc b/goal_src/engine/gfx/ocean/ocean-h.gc index 0654da8a63..1cf35c4f0f 100644 --- a/goal_src/engine/gfx/ocean/ocean-h.gc +++ b/goal_src/engine/gfx/ocean/ocean-h.gc @@ -5,6 +5,9 @@ ;; name in dgo: ocean-h ;; dgos: GAME, ENGINE +;; The "ocean" renderer is used to render the infinite water. +;; It doesn't draw the rivers in FJ or the water near the farmer. + (deftype ocean-corner (structure) ((bsphere sphere :inline :offset-assert 0) (start-corner vector :inline :offset-assert 16) @@ -62,6 +65,7 @@ ((mask uint8 8 :offset-assert 0) (dword uint64 :offset 0) ) + :pack-me :method-count-assert 9 :size-assert #x8 :flag-assert #x900000008 @@ -76,7 +80,7 @@ ) (deftype ocean-mid-masks (basic) - ((data uint32 :offset-assert 4) + ((data (inline-array ocean-mid-mask) :offset-assert 4) ) :pack-me :method-count-assert 9 @@ -105,7 +109,7 @@ ) (deftype ocean-trans-indices (basic) - ((data uint32 2304 :offset-assert 4) + ((data ocean-trans-index 2304 :inline :offset-assert 4) ) :method-count-assert 9 :size-assert #x2404 @@ -122,7 +126,7 @@ (deftype ocean-near-indices (basic) - ((data uint32 :offset-assert 4) + ((data (inline-array ocean-near-index) :offset-assert 4) ) :method-count-assert 9 :size-assert #x8 diff --git a/goal_src/engine/gfx/ocean/ocean-tables.gc b/goal_src/engine/gfx/ocean/ocean-tables.gc index 3978019ed1..e26cec6ee5 100644 --- a/goal_src/engine/gfx/ocean/ocean-tables.gc +++ b/goal_src/engine/gfx/ocean/ocean-tables.gc @@ -5,9919 +5,12285 @@ ;; name in dgo: ocean-tables ;; dgos: GAME, ENGINE -;; note: the following types aren't decompiled correctly -;; - ocean-mid-masks -;; - ocean-near-indices -;; these types have a pointer to an array of unknown length. -;; when we do get to the ocean renderer, we should probably write a special tool -;; for this file in both the compiler/decompiler. +;; These tables contain information for particular oceans. +;; All of the information is contained in *ocean-map-* +;; where is one of +;; - village1 +;; - village2 +;; - sunken +;; levels like beach/jungle/misty will use village1's ocean map. -(define *ocean-spheres-village1* (new 'static 'ocean-spheres - :spheres (new 'static 'inline-array sphere 36 - (new 'static 'sphere :x -7864320.0 :z -7864320.0 :w 2224365.5) - (new 'static 'sphere :x -4718592.0 :z -7864320.0 :w 2224365.5) - (new 'static 'sphere :x -1572864.0 :z -7864320.0 :w 2224365.5) - (new 'static 'sphere :x 1572864.0 :z -7864320.0 :w 2224365.5) - (new 'static 'sphere :x 4718592.0 :z -7864320.0 :w 2224365.5) - (new 'static 'sphere :x 7864320.0 :z -7864320.0 :w 2224365.5) - (new 'static 'sphere :x -7864320.0 :z -4718592.0 :w 2224365.5) - (new 'static 'sphere :x -4718592.0 :z -4718592.0 :w 2224365.5) - (new 'static 'sphere :x -1572864.0 :z -4718592.0 :w 2224365.5) - (new 'static 'sphere :x 1572864.0 :z -4718592.0 :w 2224365.5) - (new 'static 'sphere :x 4718592.0 :z -4718592.0 :w 2224365.5) - (new 'static 'sphere :x 7864320.0 :z -4718592.0 :w 2224365.5) - (new 'static 'sphere :x -7864320.0 :z -1572864.0 :w 2224365.5) - (new 'static 'sphere :x -4718592.0 :z -1572864.0 :w 2224365.5) - (new 'static 'sphere :x -1572864.0 :z -1572864.0 :w 2224365.5) - (new 'static 'sphere :x 1572864.0 :z -1572864.0 :w 2224365.5) - (new 'static 'sphere :x 4718592.0 :z -1572864.0 :w 2224365.5) - (new 'static 'sphere :x 7864320.0 :z -1572864.0 :w 2224365.5) - (new 'static 'sphere :x -7864320.0 :z 1572864.0 :w 2224365.5) - (new 'static 'sphere :x -4718592.0 :z 1572864.0 :w 2224365.5) - (new 'static 'sphere :x -1572864.0 :z 1572864.0 :w 2224365.5) - (new 'static 'sphere :x 1572864.0 :z 1572864.0 :w 2224365.5) - (new 'static 'sphere :x 4718592.0 :z 1572864.0 :w 2224365.5) - (new 'static 'sphere :x 7864320.0 :z 1572864.0 :w 2224365.5) - (new 'static 'sphere :x -7864320.0 :z 4718592.0 :w 2224365.5) - (new 'static 'sphere :x -4718592.0 :z 4718592.0 :w 2224365.5) - (new 'static 'sphere :x -1572864.0 :z 4718592.0 :w 2224365.5) - (new 'static 'sphere :x 1572864.0 :z 4718592.0 :w 2224365.5) - (new 'static 'sphere :x 4718592.0 :z 4718592.0 :w 2224365.5) - (new 'static 'sphere :x 7864320.0 :z 4718592.0 :w 2224365.5) - (new 'static 'sphere :x -7864320.0 :z 7864320.0 :w 2224365.5) - (new 'static 'sphere :x -4718592.0 :z 7864320.0 :w 2224365.5) - (new 'static 'sphere :x -1572864.0 :z 7864320.0 :w 2224365.5) - (new 'static 'sphere :x 1572864.0 :z 7864320.0 :w 2224365.5) - (new 'static 'sphere :x 4718592.0 :z 7864320.0 :w 2224365.5) - (new 'static 'sphere :x 7864320.0 :z 7864320.0 :w 2224365.5) - ) - ) +(define *ocean-spheres-village1* + (new 'static 'ocean-spheres + :spheres + (new 'static 'inline-array sphere 36 + (new 'static 'sphere :x -7864320.0 :z -7864320.0 :w 2224365.5) + (new 'static 'sphere :x -4718592.0 :z -7864320.0 :w 2224365.5) + (new 'static 'sphere :x -1572864.0 :z -7864320.0 :w 2224365.5) + (new 'static 'sphere :x 1572864.0 :z -7864320.0 :w 2224365.5) + (new 'static 'sphere :x 4718592.0 :z -7864320.0 :w 2224365.5) + (new 'static 'sphere :x 7864320.0 :z -7864320.0 :w 2224365.5) + (new 'static 'sphere :x -7864320.0 :z -4718592.0 :w 2224365.5) + (new 'static 'sphere :x -4718592.0 :z -4718592.0 :w 2224365.5) + (new 'static 'sphere :x -1572864.0 :z -4718592.0 :w 2224365.5) + (new 'static 'sphere :x 1572864.0 :z -4718592.0 :w 2224365.5) + (new 'static 'sphere :x 4718592.0 :z -4718592.0 :w 2224365.5) + (new 'static 'sphere :x 7864320.0 :z -4718592.0 :w 2224365.5) + (new 'static 'sphere :x -7864320.0 :z -1572864.0 :w 2224365.5) + (new 'static 'sphere :x -4718592.0 :z -1572864.0 :w 2224365.5) + (new 'static 'sphere :x -1572864.0 :z -1572864.0 :w 2224365.5) + (new 'static 'sphere :x 1572864.0 :z -1572864.0 :w 2224365.5) + (new 'static 'sphere :x 4718592.0 :z -1572864.0 :w 2224365.5) + (new 'static 'sphere :x 7864320.0 :z -1572864.0 :w 2224365.5) + (new 'static 'sphere :x -7864320.0 :z 1572864.0 :w 2224365.5) + (new 'static 'sphere :x -4718592.0 :z 1572864.0 :w 2224365.5) + (new 'static 'sphere :x -1572864.0 :z 1572864.0 :w 2224365.5) + (new 'static 'sphere :x 1572864.0 :z 1572864.0 :w 2224365.5) + (new 'static 'sphere :x 4718592.0 :z 1572864.0 :w 2224365.5) + (new 'static 'sphere :x 7864320.0 :z 1572864.0 :w 2224365.5) + (new 'static 'sphere :x -7864320.0 :z 4718592.0 :w 2224365.5) + (new 'static 'sphere :x -4718592.0 :z 4718592.0 :w 2224365.5) + (new 'static 'sphere :x -1572864.0 :z 4718592.0 :w 2224365.5) + (new 'static 'sphere :x 1572864.0 :z 4718592.0 :w 2224365.5) + (new 'static 'sphere :x 4718592.0 :z 4718592.0 :w 2224365.5) + (new 'static 'sphere :x 7864320.0 :z 4718592.0 :w 2224365.5) + (new 'static 'sphere :x -7864320.0 :z 7864320.0 :w 2224365.5) + (new 'static 'sphere :x -4718592.0 :z 7864320.0 :w 2224365.5) + (new 'static 'sphere :x -1572864.0 :z 7864320.0 :w 2224365.5) + (new 'static 'sphere :x 1572864.0 :z 7864320.0 :w 2224365.5) + (new 'static 'sphere :x 4718592.0 :z 7864320.0 :w 2224365.5) + (new 'static 'sphere :x 7864320.0 :z 7864320.0 :w 2224365.5) + ) + ) ) -(define *ocean-colors-village1* (new 'static 'ocean-colors - :colors (new 'static 'array rgba 2548 - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2b :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2b :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3b :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x3f :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3f :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x3 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x43 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x8 :g #x34 :b #x45 :a #x80) - (new 'static 'rgba :r #x8 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x40 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x47 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x47 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x47 :a #x80) - (new 'static 'rgba :r #x9 :g #x35 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #x9 :g #x35 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x47 :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x49 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x4b :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x4b :a #x80) - (new 'static 'rgba :r #xc :g #x39 :b #x4b :a #x80) - (new 'static 'rgba :r #xc :g #x39 :b #x4a :a #x80) - (new 'static 'rgba :r #xb :g #x37 :b #x48 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #xc :g #x37 :b #x48 :a #x80) - (new 'static 'rgba :r #xc :g #x38 :b #x49 :a #x80) - (new 'static 'rgba :r #xc :g #x39 :b #x4a :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x49 :a #x80) - (new 'static 'rgba :r #xc :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x43 :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x3e :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x2d :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2b :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x48 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4c :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x4d :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x4d :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x4a :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x4a :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4b :a #x80) - (new 'static 'rgba :r #x11 :g #x3f :b #x4d :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4f :a #x80) - (new 'static 'rgba :r #x14 :g #x43 :b #x50 :a #x80) - (new 'static 'rgba :r #x14 :g #x42 :b #x50 :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4f :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x4d :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x4c :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x4b :a #x80) - (new 'static 'rgba :r #xd :g #x39 :b #x4d :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x4e :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4e :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x4e :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x4c :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #xb :g #x37 :b #x4a :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x4d :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4f :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x4f :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4f :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x4f :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x4e :a #x80) - (new 'static 'rgba :r #xe :g #x3a :b #x4e :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x4e :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x4c :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x49 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x46 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3c :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x43 :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x48 :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4e :a #x80) - (new 'static 'rgba :r #x1b :g #x47 :b #x54 :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x57 :a #x80) - (new 'static 'rgba :r #x1e :g #x4a :b #x58 :a #x80) - (new 'static 'rgba :r #x1d :g #x4b :b #x56 :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x55 :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x55 :a #x80) - (new 'static 'rgba :r #x1b :g #x48 :b #x56 :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x58 :a #x80) - (new 'static 'rgba :r #x20 :g #x4d :b #x59 :a #x80) - (new 'static 'rgba :r #x21 :g #x50 :b #x5a :a #x80) - (new 'static 'rgba :r #x21 :g #x4c :b #x5a :a #x80) - (new 'static 'rgba :r #x20 :g #x4d :b #x59 :a #x80) - (new 'static 'rgba :r #x1f :g #x4c :b #x58 :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x57 :a #x80) - (new 'static 'rgba :r #x1b :g #x4b :b #x56 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x54 :a #x80) - (new 'static 'rgba :r #x15 :g #x44 :b #x52 :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x51 :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x4f :a #x80) - (new 'static 'rgba :r #xd :g #x3e :b #x4e :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x4c :a #x80) - (new 'static 'rgba :r #xc :g #x38 :b #x4b :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x4c :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x50 :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x52 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x52 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x52 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x51 :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x51 :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x52 :a #x80) - (new 'static 'rgba :r #xe :g #x3a :b #x50 :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x4e :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x4b :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x4 :g #x33 :b #x3e :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3c :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x3e :a #x80) - (new 'static 'rgba :r #x8 :g #x33 :b #x44 :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x49 :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x52 :a #x80) - (new 'static 'rgba :r #x1f :g #x4c :b #x58 :a #x80) - (new 'static 'rgba :r #x23 :g #x51 :b #x5a :a #x80) - (new 'static 'rgba :r #x23 :g #x4f :b #x5b :a #x80) - (new 'static 'rgba :r #x23 :g #x50 :b #x5c :a #x80) - (new 'static 'rgba :r #x23 :g #x4f :b #x5b :a #x80) - (new 'static 'rgba :r #x22 :g #x4f :b #x5b :a #x80) - (new 'static 'rgba :r #x23 :g #x52 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x51 :b #x5c :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x52 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x53 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x23 :g #x51 :b #x5b :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x5b :a #x80) - (new 'static 'rgba :r #x21 :g #x4d :b #x5a :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x58 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x55 :a #x80) - (new 'static 'rgba :r #x15 :g #x41 :b #x52 :a #x80) - (new 'static 'rgba :r #x12 :g #x3e :b #x50 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x50 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x52 :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x3c :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x3f :b #x53 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x52 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x53 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x53 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x52 :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x50 :a #x80) - (new 'static 'rgba :r #xd :g #x39 :b #x4c :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x46 :a #x80) - (new 'static 'rgba :r #x5 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x2d :b #x3b :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4a :a #x80) - (new 'static 'rgba :r #x19 :g #x49 :b #x53 :a #x80) - (new 'static 'rgba :r #x22 :g #x4e :b #x5a :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x5b :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x5c :a #x80) - (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x53 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x52 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x55 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x24 :g #x50 :b #x5d :a #x80) - (new 'static 'rgba :r #x22 :g #x52 :b #x5c :a #x80) - (new 'static 'rgba :r #x21 :g #x4e :b #x5b :a #x80) - (new 'static 'rgba :r #x1e :g #x4e :b #x59 :a #x80) - (new 'static 'rgba :r #x1c :g #x4a :b #x57 :a #x80) - (new 'static 'rgba :r #x1b :g #x4c :b #x57 :a #x80) - (new 'static 'rgba :r #x19 :g #x4a :b #x56 :a #x80) - (new 'static 'rgba :r #x15 :g #x45 :b #x54 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x42 :b #x54 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x54 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x54 :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x55 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x55 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x51 :a #x80) - (new 'static 'rgba :r #xe :g #x3d :b #x4b :a #x80) - (new 'static 'rgba :r #x9 :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x3f :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) - (new 'static 'rgba :r #x9 :g #x35 :b #x45 :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x4b :a #x80) - (new 'static 'rgba :r #x1b :g #x4a :b #x54 :a #x80) - (new 'static 'rgba :r #x22 :g #x51 :b #x5a :a #x80) - (new 'static 'rgba :r #x24 :g #x50 :b #x5c :a #x80) - (new 'static 'rgba :r #x25 :g #x55 :b #x5d :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x51 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x56 :b #x5f :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5f :a #x80) - (new 'static 'rgba :r #x27 :g #x55 :b #x5f :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5f :a #x80) - (new 'static 'rgba :r #x27 :g #x54 :b #x5f :a #x80) - (new 'static 'rgba :r #x26 :g #x56 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x53 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x55 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x51 :b #x5d :a #x80) - (new 'static 'rgba :r #x24 :g #x55 :b #x5d :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x23 :g #x50 :b #x5d :a #x80) - (new 'static 'rgba :r #x20 :g #x4d :b #x5b :a #x80) - (new 'static 'rgba :r #x1c :g #x4c :b #x58 :a #x80) - (new 'static 'rgba :r #x18 :g #x49 :b #x55 :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x54 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x54 :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x54 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x3f :b #x54 :a #x80) - (new 'static 'rgba :r #x13 :g #x44 :b #x55 :a #x80) - (new 'static 'rgba :r #x16 :g #x44 :b #x56 :a #x80) - (new 'static 'rgba :r #x15 :g #x44 :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x3d :b #x4e :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3e :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x40 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x47 :a #x80) - (new 'static 'rgba :r #x13 :g #x42 :b #x4e :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x54 :a #x80) - (new 'static 'rgba :r #x20 :g #x50 :b #x59 :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) - (new 'static 'rgba :r #x25 :g #x51 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x53 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x52 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5f :a #x80) - (new 'static 'rgba :r #x27 :g #x55 :b #x5f :a #x80) - (new 'static 'rgba :r #x27 :g #x56 :b #x5f :a #x80) - (new 'static 'rgba :r #x27 :g #x55 :b #x5f :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5f :a #x80) - (new 'static 'rgba :r #x26 :g #x56 :b #x5f :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x5f :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x52 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x55 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x50 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x5d :a #x80) - (new 'static 'rgba :r #x23 :g #x50 :b #x5c :a #x80) - (new 'static 'rgba :r #x21 :g #x50 :b #x5b :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x59 :a #x80) - (new 'static 'rgba :r #x17 :g #x44 :b #x55 :a #x80) - (new 'static 'rgba :r #x13 :g #x42 :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x42 :b #x55 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x55 :a #x80) - (new 'static 'rgba :r #x16 :g #x43 :b #x56 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x56 :a #x80) - (new 'static 'rgba :r #x17 :g #x44 :b #x54 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x4f :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x47 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x8 :g #x34 :b #x40 :a #x80) - (new 'static 'rgba :r #x10 :g #x3b :b #x4a :a #x80) - (new 'static 'rgba :r #x15 :g #x43 :b #x4f :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x54 :a #x80) - (new 'static 'rgba :r #x1d :g #x4b :b #x57 :a #x80) - (new 'static 'rgba :r #x20 :g #x4f :b #x5a :a #x80) - (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x5d :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x27 :g #x53 :b #x5f :a #x80) - (new 'static 'rgba :r #x28 :g #x57 :b #x60 :a #x80) - (new 'static 'rgba :r #x27 :g #x54 :b #x5f :a #x80) - (new 'static 'rgba :r #x27 :g #x55 :b #x5f :a #x80) - (new 'static 'rgba :r #x27 :g #x54 :b #x5f :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x53 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x50 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x50 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x50 :b #x5c :a #x80) - (new 'static 'rgba :r #x23 :g #x53 :b #x5b :a #x80) - (new 'static 'rgba :r #x24 :g #x50 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x54 :b #x5c :a #x80) - (new 'static 'rgba :r #x23 :g #x52 :b #x5b :a #x80) - (new 'static 'rgba :r #x23 :g #x50 :b #x5b :a #x80) - (new 'static 'rgba :r #x23 :g #x51 :b #x5c :a #x80) - (new 'static 'rgba :r #x20 :g #x4f :b #x5b :a #x80) - (new 'static 'rgba :r #x18 :g #x48 :b #x57 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x54 :a #x80) - (new 'static 'rgba :r #x13 :g #x43 :b #x55 :a #x80) - (new 'static 'rgba :r #x16 :g #x47 :b #x56 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x57 :a #x80) - (new 'static 'rgba :r #x16 :g #x45 :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x4f :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x48 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x40 :a #x80) - (new 'static 'rgba :r #x12 :g #x3d :b #x4b :a #x80) - (new 'static 'rgba :r #x16 :g #x42 :b #x50 :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x54 :a #x80) - (new 'static 'rgba :r #x1c :g #x4b :b #x57 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x59 :a #x80) - (new 'static 'rgba :r #x20 :g #x4d :b #x5a :a #x80) - (new 'static 'rgba :r #x20 :g #x4f :b #x5b :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x5a :a #x80) - (new 'static 'rgba :r #x20 :g #x4d :b #x5b :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x5d :a #x80) - (new 'static 'rgba :r #x26 :g #x56 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x52 :b #x5f :a #x80) - (new 'static 'rgba :r #x27 :g #x56 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) - (new 'static 'rgba :r #x24 :g #x53 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) - (new 'static 'rgba :r #x23 :g #x51 :b #x5b :a #x80) - (new 'static 'rgba :r #x23 :g #x50 :b #x5b :a #x80) - (new 'static 'rgba :r #x23 :g #x4f :b #x5b :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x5b :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x5b :a #x80) - (new 'static 'rgba :r #x22 :g #x4f :b #x5a :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x5a :a #x80) - (new 'static 'rgba :r #x22 :g #x4e :b #x5a :a #x80) - (new 'static 'rgba :r #x21 :g #x4e :b #x5a :a #x80) - (new 'static 'rgba :r #x1f :g #x4d :b #x5a :a #x80) - (new 'static 'rgba :r #x17 :g #x47 :b #x55 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x53 :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x53 :a #x80) - (new 'static 'rgba :r #x13 :g #x43 :b #x54 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x55 :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x55 :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x53 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4e :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x3f :a #x80) - (new 'static 'rgba :r #x12 :g #x3e :b #x4b :a #x80) - (new 'static 'rgba :r #x16 :g #x44 :b #x51 :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x54 :a #x80) - (new 'static 'rgba :r #x1c :g #x49 :b #x57 :a #x80) - (new 'static 'rgba :r #x1d :g #x4b :b #x59 :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x5a :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x5a :a #x80) - (new 'static 'rgba :r #x1f :g #x4b :b #x5a :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x5b :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x5d :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x5c :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x5c :a #x80) - (new 'static 'rgba :r #x20 :g #x50 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x50 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5d :a #x80) - (new 'static 'rgba :r #x24 :g #x54 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) - (new 'static 'rgba :r #x23 :g #x51 :b #x5b :a #x80) - (new 'static 'rgba :r #x23 :g #x50 :b #x5b :a #x80) - (new 'static 'rgba :r #x22 :g #x4f :b #x5a :a #x80) - (new 'static 'rgba :r #x21 :g #x50 :b #x59 :a #x80) - (new 'static 'rgba :r #x21 :g #x4e :b #x59 :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x59 :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x59 :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x59 :a #x80) - (new 'static 'rgba :r #x21 :g #x4e :b #x59 :a #x80) - (new 'static 'rgba :r #x21 :g #x4f :b #x59 :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x58 :a #x80) - (new 'static 'rgba :r #x1d :g #x4d :b #x57 :a #x80) - (new 'static 'rgba :r #x15 :g #x45 :b #x54 :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x51 :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x50 :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x51 :a #x80) - (new 'static 'rgba :r #x11 :g #x42 :b #x52 :a #x80) - (new 'static 'rgba :r #x13 :g #x43 :b #x53 :a #x80) - (new 'static 'rgba :r #x13 :g #x44 :b #x53 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x4f :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x4a :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x11 :g #x3d :b #x4a :a #x80) - (new 'static 'rgba :r #x16 :g #x42 :b #x50 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x53 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x57 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x58 :a #x80) - (new 'static 'rgba :r #x1f :g #x4f :b #x5a :a #x80) - (new 'static 'rgba :r #x1f :g #x50 :b #x5b :a #x80) - (new 'static 'rgba :r #x1e :g #x4d :b #x5b :a #x80) - (new 'static 'rgba :r #x1c :g #x4d :b #x5a :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x58 :a #x80) - (new 'static 'rgba :r #x15 :g #x45 :b #x57 :a #x80) - (new 'static 'rgba :r #x13 :g #x3f :b #x56 :a #x80) - (new 'static 'rgba :r #x16 :g #x45 :b #x57 :a #x80) - (new 'static 'rgba :r #x1e :g #x4d :b #x5a :a #x80) - (new 'static 'rgba :r #x23 :g #x4f :b #x5d :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x5d :a #x80) - (new 'static 'rgba :r #x24 :g #x4f :b #x5b :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x5b :a #x80) - (new 'static 'rgba :r #x21 :g #x4f :b #x5a :a #x80) - (new 'static 'rgba :r #x21 :g #x4e :b #x59 :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x58 :a #x80) - (new 'static 'rgba :r #x20 :g #x4d :b #x58 :a #x80) - (new 'static 'rgba :r #x1f :g #x4d :b #x57 :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x56 :a #x80) - (new 'static 'rgba :r #x1d :g #x4c :b #x56 :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x56 :a #x80) - (new 'static 'rgba :r #x1e :g #x4a :b #x56 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x55 :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x56 :a #x80) - (new 'static 'rgba :r #x1a :g #x49 :b #x54 :a #x80) - (new 'static 'rgba :r #x14 :g #x42 :b #x51 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x4f :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4f :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x50 :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x50 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x51 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x50 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x4f :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x4b :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x46 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3d :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2f :b #x38 :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x3c :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x47 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x4e :a #x80) - (new 'static 'rgba :r #x15 :g #x44 :b #x51 :a #x80) - (new 'static 'rgba :r #x19 :g #x48 :b #x55 :a #x80) - (new 'static 'rgba :r #x19 :g #x49 :b #x57 :a #x80) - (new 'static 'rgba :r #x1a :g #x48 :b #x59 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x58 :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x56 :a #x80) - (new 'static 'rgba :r #x14 :g #x44 :b #x54 :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x54 :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x54 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x55 :a #x80) - (new 'static 'rgba :r #x13 :g #x3e :b #x54 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x58 :a #x80) - (new 'static 'rgba :r #x20 :g #x4f :b #x5a :a #x80) - (new 'static 'rgba :r #x1f :g #x4d :b #x59 :a #x80) - (new 'static 'rgba :r #x23 :g #x4f :b #x5a :a #x80) - (new 'static 'rgba :r #x23 :g #x50 :b #x5b :a #x80) - (new 'static 'rgba :r #x20 :g #x4f :b #x59 :a #x80) - (new 'static 'rgba :r #x20 :g #x4d :b #x58 :a #x80) - (new 'static 'rgba :r #x1f :g #x4e :b #x57 :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x56 :a #x80) - (new 'static 'rgba :r #x1e :g #x4a :b #x56 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x54 :a #x80) - (new 'static 'rgba :r #x1c :g #x48 :b #x54 :a #x80) - (new 'static 'rgba :r #x1c :g #x4a :b #x54 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x53 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x53 :a #x80) - (new 'static 'rgba :r #x1b :g #x47 :b #x53 :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x52 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x51 :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x4f :a #x80) - (new 'static 'rgba :r #xe :g #x3d :b #x4d :a #x80) - (new 'static 'rgba :r #xe :g #x3d :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4f :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x4f :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x4f :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x4f :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x50 :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x4f :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4c :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x49 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3e :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x48 :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x4b :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x41 :b #x4f :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x51 :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x50 :a #x80) - (new 'static 'rgba :r #xf :g #x3a :b #x50 :a #x80) - (new 'static 'rgba :r #xf :g #x3a :b #x4f :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x55 :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x54 :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x55 :a #x80) - (new 'static 'rgba :r #x19 :g #x48 :b #x57 :a #x80) - (new 'static 'rgba :r #x1d :g #x4c :b #x59 :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x56 :a #x80) - (new 'static 'rgba :r #x1a :g #x48 :b #x56 :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x57 :a #x80) - (new 'static 'rgba :r #x1e :g #x4d :b #x58 :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x57 :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x55 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x54 :a #x80) - (new 'static 'rgba :r #x1c :g #x4a :b #x54 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x53 :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x52 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x51 :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x51 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x51 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x50 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x50 :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x4f :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4d :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4d :a #x80) - (new 'static 'rgba :r #x11 :g #x3f :b #x4d :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x4e :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x4e :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x4e :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x4d :a #x80) - (new 'static 'rgba :r #xc :g #x39 :b #x4a :a #x80) - (new 'static 'rgba :r #xa :g #x36 :b #x47 :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x48 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x4a :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x4b :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x4b :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x4c :a #x80) - (new 'static 'rgba :r #xb :g #x3b :b #x4c :a #x80) - (new 'static 'rgba :r #xd :g #x39 :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x54 :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x54 :a #x80) - (new 'static 'rgba :r #x15 :g #x41 :b #x55 :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x57 :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x57 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x54 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x52 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x54 :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x56 :a #x80) - (new 'static 'rgba :r #x1c :g #x49 :b #x55 :a #x80) - (new 'static 'rgba :r #x1c :g #x49 :b #x54 :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x53 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x52 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x50 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x4f :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x4e :a #x80) - (new 'static 'rgba :r #x16 :g #x43 :b #x4e :a #x80) - (new 'static 'rgba :r #x16 :g #x42 :b #x4d :a #x80) - (new 'static 'rgba :r #x16 :g #x43 :b #x4e :a #x80) - (new 'static 'rgba :r #x16 :g #x43 :b #x4d :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x4d :a #x80) - (new 'static 'rgba :r #x16 :g #x42 :b #x4d :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x4c :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x4c :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4c :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x4c :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x4c :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x4c :a #x80) - (new 'static 'rgba :r #xe :g #x3d :b #x4d :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4d :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x4c :a #x80) - (new 'static 'rgba :r #xc :g #x39 :b #x4a :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x47 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x45 :a #x80) - (new 'static 'rgba :r #x9 :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x4a :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x4a :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x4a :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x4b :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x4d :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x4f :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x53 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x54 :a #x80) - (new 'static 'rgba :r #x14 :g #x43 :b #x55 :a #x80) - (new 'static 'rgba :r #x17 :g #x48 :b #x57 :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x57 :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x51 :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x51 :a #x80) - (new 'static 'rgba :r #x15 :g #x41 :b #x51 :a #x80) - (new 'static 'rgba :r #x1b :g #x47 :b #x53 :a #x80) - (new 'static 'rgba :r #x1c :g #x49 :b #x54 :a #x80) - (new 'static 'rgba :r #x1a :g #x48 :b #x52 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x51 :a #x80) - (new 'static 'rgba :r #x17 :g #x44 :b #x4f :a #x80) - (new 'static 'rgba :r #x16 :g #x43 :b #x4e :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x4d :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x4c :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x4b :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4a :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4a :a #x80) - (new 'static 'rgba :r #x13 :g #x3f :b #x4a :a #x80) - (new 'static 'rgba :r #x13 :g #x3f :b #x4a :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4a :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4b :a #x80) - (new 'static 'rgba :r #x13 :g #x3f :b #x4a :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x4b :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x4b :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x4a :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4b :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x4b :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x4b :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x4b :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x49 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x47 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x49 :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x4a :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x4b :a #x80) - (new 'static 'rgba :r #xd :g #x39 :b #x4e :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x50 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #x12 :g #x3e :b #x54 :a #x80) - (new 'static 'rgba :r #x15 :g #x45 :b #x56 :a #x80) - (new 'static 'rgba :r #x18 :g #x47 :b #x58 :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x58 :a #x80) - (new 'static 'rgba :r #x17 :g #x46 :b #x56 :a #x80) - (new 'static 'rgba :r #x12 :g #x43 :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x51 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x51 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x52 :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x54 :a #x80) - (new 'static 'rgba :r #x1c :g #x48 :b #x53 :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x51 :a #x80) - (new 'static 'rgba :r #x16 :g #x43 :b #x4f :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x4d :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4b :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x4a :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x49 :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x48 :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x48 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #xb :g #x37 :b #x49 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #x8 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x46 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x49 :a #x80) - (new 'static 'rgba :r #xb :g #x3b :b #x4b :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x52 :a #x80) - (new 'static 'rgba :r #x12 :g #x3e :b #x55 :a #x80) - (new 'static 'rgba :r #x15 :g #x43 :b #x57 :a #x80) - (new 'static 'rgba :r #x18 :g #x48 :b #x58 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x59 :a #x80) - (new 'static 'rgba :r #x1c :g #x4c :b #x59 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x57 :a #x80) - (new 'static 'rgba :r #x13 :g #x43 :b #x54 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #x11 :g #x3f :b #x51 :a #x80) - (new 'static 'rgba :r #x15 :g #x44 :b #x53 :a #x80) - (new 'static 'rgba :r #x1c :g #x4a :b #x55 :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x56 :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x53 :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x50 :a #x80) - (new 'static 'rgba :r #x14 :g #x42 :b #x4d :a #x80) - (new 'static 'rgba :r #x11 :g #x3f :b #x4b :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x4a :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x48 :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x43 :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x43 :a #x80) - (new 'static 'rgba :r #xb :g #x37 :b #x43 :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x47 :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x3f :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x48 :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x4d :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x56 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x59 :a #x80) - (new 'static 'rgba :r #x1c :g #x4c :b #x5a :a #x80) - (new 'static 'rgba :r #x21 :g #x4f :b #x5c :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x5c :a #x80) - (new 'static 'rgba :r #x20 :g #x4f :b #x5a :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x56 :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x53 :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x52 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #x17 :g #x44 :b #x53 :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x55 :a #x80) - (new 'static 'rgba :r #x21 :g #x4d :b #x55 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x52 :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x4e :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4c :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x4a :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x5 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x4 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x4 :g #x33 :b #x3f :a #x80) - (new 'static 'rgba :r #x4 :g #x33 :b #x3f :a #x80) - (new 'static 'rgba :r #x4 :g #x33 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x34 :b #x3f :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x40 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x40 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x41 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x3e :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x43 :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4f :a #x80) - (new 'static 'rgba :r #x16 :g #x47 :b #x56 :a #x80) - (new 'static 'rgba :r #x1c :g #x4a :b #x5a :a #x80) - (new 'static 'rgba :r #x20 :g #x4d :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x4f :b #x5d :a #x80) - (new 'static 'rgba :r #x26 :g #x53 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x5b :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x57 :a #x80) - (new 'static 'rgba :r #x13 :g #x3f :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x3d :b #x52 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x52 :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x53 :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x54 :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x53 :a #x80) - (new 'static 'rgba :r #x1c :g #x48 :b #x4f :a #x80) - (new 'static 'rgba :r #x18 :g #x43 :b #x4d :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4c :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x49 :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x4 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x3 :g #x33 :b #x3e :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x2 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x2 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x2 :g #x31 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x40 :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x49 :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x50 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x57 :a #x80) - (new 'static 'rgba :r #x21 :g #x51 :b #x5d :a #x80) - (new 'static 'rgba :r #x26 :g #x53 :b #x5f :a #x80) - (new 'static 'rgba :r #x28 :g #x55 :b #x5f :a #x80) - (new 'static 'rgba :r #x27 :g #x53 :b #x5f :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) - (new 'static 'rgba :r #x20 :g #x4f :b #x5b :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x57 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x55 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x53 :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x53 :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x54 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x54 :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x53 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x4f :a #x80) - (new 'static 'rgba :r #x1a :g #x44 :b #x4d :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x4b :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x49 :a #x80) - (new 'static 'rgba :r #x9 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x5 :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x4 :g #x34 :b #x40 :a #x80) - (new 'static 'rgba :r #x3 :g #x33 :b #x3e :a #x80) - (new 'static 'rgba :r #x2 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x2 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x2 :g #x31 :b #x3c :a #x80) - (new 'static 'rgba :r #x2 :g #x31 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3f :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3e :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3c :a #x80) - (new 'static 'rgba :r #x7 :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x50 :a #x80) - (new 'static 'rgba :r #x1b :g #x48 :b #x57 :a #x80) - (new 'static 'rgba :r #x22 :g #x52 :b #x5d :a #x80) - (new 'static 'rgba :r #x26 :g #x52 :b #x5f :a #x80) - (new 'static 'rgba :r #x26 :g #x56 :b #x5f :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x5d :a #x80) - (new 'static 'rgba :r #x21 :g #x4f :b #x5c :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x5a :a #x80) - (new 'static 'rgba :r #x1c :g #x4a :b #x59 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x57 :a #x80) - (new 'static 'rgba :r #x18 :g #x47 :b #x56 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x56 :a #x80) - (new 'static 'rgba :r #x1b :g #x4a :b #x55 :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x55 :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x54 :a #x80) - (new 'static 'rgba :r #x20 :g #x4b :b #x51 :a #x80) - (new 'static 'rgba :r #x1d :g #x46 :b #x4d :a #x80) - (new 'static 'rgba :r #x19 :g #x44 :b #x4b :a #x80) - (new 'static 'rgba :r #x15 :g #x41 :b #x4a :a #x80) - (new 'static 'rgba :r #x11 :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x43 :a #x80) - (new 'static 'rgba :r #x5 :g #x36 :b #x40 :a #x80) - (new 'static 'rgba :r #x4 :g #x35 :b #x3f :a #x80) - (new 'static 'rgba :r #x3 :g #x34 :b #x3e :a #x80) - (new 'static 'rgba :r #x3 :g #x33 :b #x3e :a #x80) - (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x4f :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x55 :a #x80) - (new 'static 'rgba :r #x1d :g #x4c :b #x59 :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x5b :a #x80) - (new 'static 'rgba :r #x1f :g #x4c :b #x5b :a #x80) - (new 'static 'rgba :r #x1c :g #x4a :b #x59 :a #x80) - (new 'static 'rgba :r #x1a :g #x49 :b #x58 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x57 :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x57 :a #x80) - (new 'static 'rgba :r #x19 :g #x4a :b #x56 :a #x80) - (new 'static 'rgba :r #x1b :g #x48 :b #x57 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x56 :a #x80) - (new 'static 'rgba :r #x1b :g #x47 :b #x54 :a #x80) - (new 'static 'rgba :r #x1c :g #x49 :b #x55 :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x55 :a #x80) - (new 'static 'rgba :r #x20 :g #x4b :b #x53 :a #x80) - (new 'static 'rgba :r #x20 :g #x4a :b #x50 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x4e :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x4c :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x4a :a #x80) - (new 'static 'rgba :r #x15 :g #x41 :b #x49 :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x48 :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x45 :a #x80) - (new 'static 'rgba :r #x8 :g #x38 :b #x42 :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x40 :a #x80) - (new 'static 'rgba :r #x5 :g #x34 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x3f :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x2 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x40 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x4d :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x50 :a #x80) - (new 'static 'rgba :r #x15 :g #x43 :b #x54 :a #x80) - (new 'static 'rgba :r #x16 :g #x42 :b #x54 :a #x80) - (new 'static 'rgba :r #x14 :g #x42 :b #x53 :a #x80) - (new 'static 'rgba :r #x13 :g #x43 :b #x53 :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #x13 :g #x3f :b #x52 :a #x80) - (new 'static 'rgba :r #x14 :g #x42 :b #x53 :a #x80) - (new 'static 'rgba :r #x14 :g #x44 :b #x52 :a #x80) - (new 'static 'rgba :r #x14 :g #x43 :b #x51 :a #x80) - (new 'static 'rgba :r #x14 :g #x43 :b #x50 :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x4f :a #x80) - (new 'static 'rgba :r #x14 :g #x42 :b #x50 :a #x80) - (new 'static 'rgba :r #x19 :g #x44 :b #x51 :a #x80) - (new 'static 'rgba :r #x1e :g #x4a :b #x54 :a #x80) - (new 'static 'rgba :r #x22 :g #x4d :b #x54 :a #x80) - (new 'static 'rgba :r #x22 :g #x4e :b #x53 :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x52 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x50 :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x4e :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x4b :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x8 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2b :b #x39 :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3e :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x49 :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x4c :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x4d :a #x80) - (new 'static 'rgba :r #xe :g #x3a :b #x4e :a #x80) - (new 'static 'rgba :r #xd :g #x39 :b #x4e :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x4e :a #x80) - (new 'static 'rgba :r #xe :g #x3d :b #x4f :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4f :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x4f :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x4d :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x4b :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x4b :a #x80) - (new 'static 'rgba :r #x13 :g #x42 :b #x4e :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x53 :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x56 :a #x80) - (new 'static 'rgba :r #x23 :g #x4f :b #x57 :a #x80) - (new 'static 'rgba :r #x22 :g #x4e :b #x54 :a #x80) - (new 'static 'rgba :r #x1f :g #x4c :b #x52 :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x4f :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x4c :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x48 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x40 :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x40 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2b :b #x39 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3d :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x43 :a #x80) - (new 'static 'rgba :r #x8 :g #x37 :b #x47 :a #x80) - (new 'static 'rgba :r #x9 :g #x39 :b #x49 :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x49 :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x4a :a #x80) - (new 'static 'rgba :r #xb :g #x37 :b #x4c :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x4e :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x51 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x51 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x51 :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x4e :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x4b :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x48 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x49 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x4d :a #x80) - (new 'static 'rgba :r #x19 :g #x48 :b #x52 :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x56 :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x57 :a #x80) - (new 'static 'rgba :r #x25 :g #x50 :b #x57 :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x55 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x51 :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x4d :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x48 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x45 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2f :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x41 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x7 :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x9 :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x4a :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x4d :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x51 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x54 :a #x80) - (new 'static 'rgba :r #x14 :g #x40 :b #x54 :a #x80) - (new 'static 'rgba :r #x14 :g #x45 :b #x54 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x51 :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x4e :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x4b :a #x80) - (new 'static 'rgba :r #xe :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x4b :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x4c :a #x80) - (new 'static 'rgba :r #x19 :g #x49 :b #x4f :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x53 :a #x80) - (new 'static 'rgba :r #x25 :g #x51 :b #x56 :a #x80) - (new 'static 'rgba :r #x25 :g #x52 :b #x57 :a #x80) - (new 'static 'rgba :r #x22 :g #x4e :b #x56 :a #x80) - (new 'static 'rgba :r #x1c :g #x48 :b #x52 :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x4e :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x48 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x5 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x49 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x48 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x45 :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x40 :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x8 :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x49 :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x4c :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x50 :a #x80) - (new 'static 'rgba :r #x14 :g #x43 :b #x54 :a #x80) - (new 'static 'rgba :r #x16 :g #x46 :b #x57 :a #x80) - (new 'static 'rgba :r #x16 :g #x44 :b #x56 :a #x80) - (new 'static 'rgba :r #x15 :g #x46 :b #x54 :a #x80) - (new 'static 'rgba :r #x14 :g #x42 :b #x51 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x41 :b #x4b :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4a :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x49 :a #x80) - (new 'static 'rgba :r #x15 :g #x45 :b #x4a :a #x80) - (new 'static 'rgba :r #x1a :g #x48 :b #x4a :a #x80) - (new 'static 'rgba :r #x1f :g #x4a :b #x4b :a #x80) - (new 'static 'rgba :r #x23 :g #x4d :b #x4e :a #x80) - (new 'static 'rgba :r #x26 :g #x51 :b #x53 :a #x80) - (new 'static 'rgba :r #x23 :g #x51 :b #x55 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x51 :a #x80) - (new 'static 'rgba :r #x15 :g #x45 :b #x4c :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x9 :g #x3a :b #x44 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x47 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x48 :a #x80) - (new 'static 'rgba :r #xe :g #x3d :b #x4b :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x4c :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x4d :a #x80) - (new 'static 'rgba :r #xe :g #x3d :b #x4c :a #x80) - (new 'static 'rgba :r #xc :g #x39 :b #x4a :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x46 :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x3d :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x42 :a #x80) - (new 'static 'rgba :r #x8 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x4b :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x4f :a #x80) - (new 'static 'rgba :r #x16 :g #x42 :b #x54 :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x59 :a #x80) - (new 'static 'rgba :r #x1e :g #x4a :b #x59 :a #x80) - (new 'static 'rgba :r #x1a :g #x49 :b #x56 :a #x80) - (new 'static 'rgba :r #x16 :g #x44 :b #x51 :a #x80) - (new 'static 'rgba :r #x13 :g #x42 :b #x4e :a #x80) - (new 'static 'rgba :r #x11 :g #x42 :b #x4a :a #x80) - (new 'static 'rgba :r #xf :g #x42 :b #x47 :a #x80) - (new 'static 'rgba :r #x10 :g #x42 :b #x45 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x44 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x41 :a #x80) - (new 'static 'rgba :r #x1a :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x1d :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x21 :g #x47 :b #x42 :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x4d :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x4a :a #x80) - (new 'static 'rgba :r #x17 :g #x46 :b #x49 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x48 :a #x80) - (new 'static 'rgba :r #xe :g #x3d :b #x47 :a #x80) - (new 'static 'rgba :r #xc :g #x3d :b #x46 :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x48 :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x49 :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x4a :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x4a :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x4b :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x4b :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x4c :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x4e :a #x80) - (new 'static 'rgba :r #x14 :g #x42 :b #x4f :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x50 :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4f :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x4e :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4c :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3d :a #x80) - (new 'static 'rgba :r #x5 :g #x34 :b #x40 :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x45 :a #x80) - (new 'static 'rgba :r #x9 :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x4b :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x4f :a #x80) - (new 'static 'rgba :r #x17 :g #x47 :b #x54 :a #x80) - (new 'static 'rgba :r #x1d :g #x48 :b #x56 :a #x80) - (new 'static 'rgba :r #x21 :g #x52 :b #x5a :a #x80) - (new 'static 'rgba :r #x21 :g #x4f :b #x58 :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x55 :a #x80) - (new 'static 'rgba :r #x18 :g #x49 :b #x4f :a #x80) - (new 'static 'rgba :r #x12 :g #x45 :b #x4b :a #x80) - (new 'static 'rgba :r #xf :g #x44 :b #x46 :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x42 :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x3e :a #x80) - (new 'static 'rgba :r #x11 :g #x3d :b #x3d :a #x80) - (new 'static 'rgba :r #x14 :g #x3e :b #x3c :a #x80) - (new 'static 'rgba :r #x19 :g #x40 :b #x39 :a #x80) - (new 'static 'rgba :r #x1c :g #x41 :b #x38 :a #x80) - (new 'static 'rgba :r #x1f :g #x43 :b #x3b :a #x80) - (new 'static 'rgba :r #x20 :g #x45 :b #x3e :a #x80) - (new 'static 'rgba :r #x20 :g #x44 :b #x3e :a #x80) - (new 'static 'rgba :r #x1c :g #x44 :b #x40 :a #x80) - (new 'static 'rgba :r #x18 :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x46 :a #x80) - (new 'static 'rgba :r #x11 :g #x42 :b #x49 :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x48 :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x49 :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x4a :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4b :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4c :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4d :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x50 :a #x80) - (new 'static 'rgba :r #x16 :g #x44 :b #x51 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x52 :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x52 :a #x80) - (new 'static 'rgba :r #x16 :g #x44 :b #x51 :a #x80) - (new 'static 'rgba :r #x15 :g #x43 :b #x50 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x4e :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x49 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x4b :a #x80) - (new 'static 'rgba :r #x11 :g #x3d :b #x4e :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x52 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x55 :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x55 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x4f :a #x80) - (new 'static 'rgba :r #x1c :g #x48 :b #x51 :a #x80) - (new 'static 'rgba :r #x1f :g #x50 :b #x53 :a #x80) - (new 'static 'rgba :r #x1a :g #x4b :b #x4e :a #x80) - (new 'static 'rgba :r #x12 :g #x43 :b #x45 :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x40 :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x3b :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x39 :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x37 :a #x80) - (new 'static 'rgba :r #x14 :g #x3f :b #x35 :a #x80) - (new 'static 'rgba :r #x17 :g #x40 :b #x34 :a #x80) - (new 'static 'rgba :r #x1a :g #x41 :b #x35 :a #x80) - (new 'static 'rgba :r #x1e :g #x42 :b #x36 :a #x80) - (new 'static 'rgba :r #x1f :g #x43 :b #x35 :a #x80) - (new 'static 'rgba :r #x1d :g #x42 :b #x38 :a #x80) - (new 'static 'rgba :r #x1b :g #x41 :b #x39 :a #x80) - (new 'static 'rgba :r #x17 :g #x40 :b #x3e :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x43 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x47 :a #x80) - (new 'static 'rgba :r #x10 :g #x42 :b #x48 :a #x80) - (new 'static 'rgba :r #x10 :g #x42 :b #x49 :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x49 :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x49 :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x4b :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x4c :a #x80) - (new 'static 'rgba :r #x12 :g #x43 :b #x4e :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x51 :a #x80) - (new 'static 'rgba :r #x19 :g #x48 :b #x53 :a #x80) - (new 'static 'rgba :r #x1a :g #x48 :b #x54 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x53 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x53 :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x52 :a #x80) - (new 'static 'rgba :r #x13 :g #x42 :b #x4f :a #x80) - (new 'static 'rgba :r #xf :g #x3b :b #x4b :a #x80) - (new 'static 'rgba :r #x9 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x47 :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x4b :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x4f :a #x80) - (new 'static 'rgba :r #x17 :g #x46 :b #x52 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x54 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x54 :a #x80) - (new 'static 'rgba :r #x18 :g #x43 :b #x4c :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x46 :a #x80) - (new 'static 'rgba :r #x14 :g #x44 :b #x48 :a #x80) - (new 'static 'rgba :r #x1a :g #x4b :b #x4c :a #x80) - (new 'static 'rgba :r #x1b :g #x4a :b #x4a :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x41 :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x3c :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x39 :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x36 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x36 :a #x80) - (new 'static 'rgba :r #x12 :g #x3e :b #x31 :a #x80) - (new 'static 'rgba :r #x15 :g #x40 :b #x2e :a #x80) - (new 'static 'rgba :r #x18 :g #x40 :b #x2e :a #x80) - (new 'static 'rgba :r #x1b :g #x41 :b #x2f :a #x80) - (new 'static 'rgba :r #x1c :g #x42 :b #x31 :a #x80) - (new 'static 'rgba :r #x1b :g #x42 :b #x32 :a #x80) - (new 'static 'rgba :r #x19 :g #x42 :b #x34 :a #x80) - (new 'static 'rgba :r #x16 :g #x40 :b #x3b :a #x80) - (new 'static 'rgba :r #x13 :g #x3f :b #x3e :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x44 :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x46 :a #x80) - (new 'static 'rgba :r #x10 :g #x42 :b #x47 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #xe :g #x41 :b #x48 :a #x80) - (new 'static 'rgba :r #xe :g #x41 :b #x49 :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x4a :a #x80) - (new 'static 'rgba :r #x11 :g #x3f :b #x4d :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x50 :a #x80) - (new 'static 'rgba :r #x19 :g #x48 :b #x53 :a #x80) - (new 'static 'rgba :r #x1c :g #x48 :b #x55 :a #x80) - (new 'static 'rgba :r #x1b :g #x48 :b #x55 :a #x80) - (new 'static 'rgba :r #x1a :g #x48 :b #x54 :a #x80) - (new 'static 'rgba :r #x16 :g #x44 :b #x52 :a #x80) - (new 'static 'rgba :r #x13 :g #x3f :b #x50 :a #x80) - (new 'static 'rgba :r #xe :g #x3a :b #x4b :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3b :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #xc :g #x38 :b #x49 :a #x80) - (new 'static 'rgba :r #x10 :g #x41 :b #x4e :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x52 :a #x80) - (new 'static 'rgba :r #x1b :g #x47 :b #x54 :a #x80) - (new 'static 'rgba :r #x1d :g #x4c :b #x54 :a #x80) - (new 'static 'rgba :r #x19 :g #x43 :b #x4c :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x46 :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x43 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x45 :a #x80) - (new 'static 'rgba :r #x16 :g #x45 :b #x46 :a #x80) - (new 'static 'rgba :r #x1a :g #x48 :b #x47 :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x3d :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x37 :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x34 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x35 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x30 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x2c :a #x80) - (new 'static 'rgba :r #x11 :g #x3d :b #x2a :a #x80) - (new 'static 'rgba :r #x14 :g #x3e :b #x29 :a #x80) - (new 'static 'rgba :r #x16 :g #x3f :b #x27 :a #x80) - (new 'static 'rgba :r #x17 :g #x3f :b #x29 :a #x80) - (new 'static 'rgba :r #x16 :g #x3f :b #x2c :a #x80) - (new 'static 'rgba :r #x15 :g #x3f :b #x30 :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x36 :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x3a :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x40 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x43 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x45 :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x46 :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x47 :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x47 :a #x80) - (new 'static 'rgba :r #xe :g #x41 :b #x48 :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x4a :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x4e :a #x80) - (new 'static 'rgba :r #x16 :g #x44 :b #x51 :a #x80) - (new 'static 'rgba :r #x19 :g #x48 :b #x53 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x54 :a #x80) - (new 'static 'rgba :r #x17 :g #x46 :b #x54 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x52 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4f :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x4a :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #xe :g #x3a :b #x4b :a #x80) - (new 'static 'rgba :r #x14 :g #x43 :b #x50 :a #x80) - (new 'static 'rgba :r #x1a :g #x48 :b #x55 :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x54 :a #x80) - (new 'static 'rgba :r #x1a :g #x46 :b #x4f :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x48 :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x44 :a #x80) - (new 'static 'rgba :r #x11 :g #x3f :b #x43 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x42 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x40 :a #x80) - (new 'static 'rgba :r #x11 :g #x3d :b #x36 :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x33 :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x31 :a #x80) - (new 'static 'rgba :r #xe :g #x3d :b #x30 :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x2b :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x26 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x22 :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x1c :a #x80) - (new 'static 'rgba :r #xf :g #x3a :b #x1d :a #x80) - (new 'static 'rgba :r #x10 :g #x3b :b #x21 :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x24 :a #x80) - (new 'static 'rgba :r #x11 :g #x3d :b #x2b :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x30 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x38 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x3c :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x40 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x42 :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x43 :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x44 :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x44 :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x46 :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x48 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x4b :a #x80) - (new 'static 'rgba :r #x13 :g #x42 :b #x4f :a #x80) - (new 'static 'rgba :r #x16 :g #x46 :b #x53 :a #x80) - (new 'static 'rgba :r #x16 :g #x45 :b #x54 :a #x80) - (new 'static 'rgba :r #x15 :g #x43 :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x50 :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x4d :a #x80) - (new 'static 'rgba :r #xa :g #x36 :b #x48 :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x3f :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x31 :b #x3c :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x45 :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4a :a #x80) - (new 'static 'rgba :r #x15 :g #x45 :b #x51 :a #x80) - (new 'static 'rgba :r #x1d :g #x4b :b #x56 :a #x80) - (new 'static 'rgba :r #x1f :g #x4c :b #x53 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x4e :a #x80) - (new 'static 'rgba :r #x13 :g #x43 :b #x48 :a #x80) - (new 'static 'rgba :r #x13 :g #x43 :b #x47 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x44 :a #x80) - (new 'static 'rgba :r #x17 :g #x44 :b #x45 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x13 :g #x3e :b #x39 :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x33 :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x2d :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x2a :a #x80) - (new 'static 'rgba :r #xe :g #x3d :b #x2a :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x24 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x21 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x19 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x17 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x15 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x16 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x1c :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x23 :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x2d :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x35 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x3a :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x3e :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x40 :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x41 :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x42 :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x42 :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x44 :a #x80) - (new 'static 'rgba :r #xd :g #x3f :b #x46 :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x49 :a #x80) - (new 'static 'rgba :r #x10 :g #x41 :b #x4d :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x51 :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x52 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x4f :a #x80) - (new 'static 'rgba :r #xb :g #x3b :b #x4a :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x3d :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3c :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3f :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x43 :a #x80) - (new 'static 'rgba :r #xc :g #x39 :b #x49 :a #x80) - (new 'static 'rgba :r #x13 :g #x43 :b #x50 :a #x80) - (new 'static 'rgba :r #x1b :g #x47 :b #x55 :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x55 :a #x80) - (new 'static 'rgba :r #x1d :g #x4c :b #x51 :a #x80) - (new 'static 'rgba :r #x18 :g #x48 :b #x4b :a #x80) - (new 'static 'rgba :r #x19 :g #x4a :b #x4b :a #x80) - (new 'static 'rgba :r #x18 :g #x47 :b #x49 :a #x80) - (new 'static 'rgba :r #x16 :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x3b :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x34 :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x2e :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x29 :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x29 :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x22 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x1f :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x18 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x12 :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #xe :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #xd :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x10 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x15 :a #x80) - (new 'static 'rgba :r #x8 :g #x37 :b #x1f :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x26 :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x2e :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x33 :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x39 :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x3a :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x3e :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x3f :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x3e :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x3f :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x44 :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x47 :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x4b :a #x80) - (new 'static 'rgba :r #x11 :g #x42 :b #x4f :a #x80) - (new 'static 'rgba :r #x11 :g #x3d :b #x51 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x50 :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x4c :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x46 :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3b :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x4c :a #x80) - (new 'static 'rgba :r #x14 :g #x44 :b #x50 :a #x80) - (new 'static 'rgba :r #x19 :g #x48 :b #x52 :a #x80) - (new 'static 'rgba :r #x19 :g #x48 :b #x50 :a #x80) - (new 'static 'rgba :r #x19 :g #x4b :b #x4c :a #x80) - (new 'static 'rgba :r #x16 :g #x45 :b #x46 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x3e :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x3c :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x37 :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x30 :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x2d :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x25 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x23 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x1e :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x19 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x14 :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x12 :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xa :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xa :a #x80) - (new 'static 'rgba :r #x3 :g #x32 :b #xb :a #x80) - (new 'static 'rgba :r #x4 :g #x33 :b #xe :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x17 :a #x80) - (new 'static 'rgba :r #x8 :g #x37 :b #x1f :a #x80) - (new 'static 'rgba :r #x9 :g #x39 :b #x24 :a #x80) - (new 'static 'rgba :r #xb :g #x3b :b #x2e :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x32 :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x37 :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x3b :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x3c :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x3d :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x3f :a #x80) - (new 'static 'rgba :r #xd :g #x3e :b #x41 :a #x80) - (new 'static 'rgba :r #xe :g #x42 :b #x47 :a #x80) - (new 'static 'rgba :r #xf :g #x41 :b #x4a :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x4e :a #x80) - (new 'static 'rgba :r #xf :g #x3b :b #x50 :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x4e :a #x80) - (new 'static 'rgba :r #xa :g #x36 :b #x49 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x4 :g #x2e :b #x3d :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2f :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x40 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x48 :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x4c :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x4c :a #x80) - (new 'static 'rgba :r #x13 :g #x44 :b #x4a :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x45 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x40 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x3a :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x3a :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x36 :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x30 :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x2c :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x26 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x20 :a #x80) - (new 'static 'rgba :r #x8 :g #x37 :b #x1d :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x15 :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x11 :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #xf :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xc :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xa :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xc :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #xb :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x10 :a #x80) - (new 'static 'rgba :r #x5 :g #x35 :b #x19 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x1f :a #x80) - (new 'static 'rgba :r #x9 :g #x39 :b #x26 :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x2b :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x2f :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x36 :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x37 :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x3b :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x3b :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x40 :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x46 :a #x80) - (new 'static 'rgba :r #xf :g #x41 :b #x4a :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x4e :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x4e :a #x80) - (new 'static 'rgba :r #xb :g #x3b :b #x4b :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3f :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3f :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x48 :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x47 :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x45 :a #x80) - (new 'static 'rgba :r #xd :g #x3f :b #x41 :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x3d :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x37 :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x37 :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x33 :a #x80) - (new 'static 'rgba :r #xb :g #x3c :b #x31 :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x29 :a #x80) - (new 'static 'rgba :r #x9 :g #x39 :b #x26 :a #x80) - (new 'static 'rgba :r #x8 :g #x38 :b #x20 :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x1b :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x16 :a #x80) - (new 'static 'rgba :r #x4 :g #x34 :b #x11 :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #xf :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xb :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x8 :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x9 :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xa :a #x80) - (new 'static 'rgba :r #x3 :g #x32 :b #xc :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x10 :a #x80) - (new 'static 'rgba :r #x5 :g #x34 :b #x16 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x1c :a #x80) - (new 'static 'rgba :r #x8 :g #x38 :b #x23 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x2a :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x2e :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x33 :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x36 :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x3b :a #x80) - (new 'static 'rgba :r #xd :g #x3f :b #x40 :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x47 :a #x80) - (new 'static 'rgba :r #xf :g #x41 :b #x4b :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x4d :a #x80) - (new 'static 'rgba :r #xd :g #x39 :b #x4c :a #x80) - (new 'static 'rgba :r #xa :g #x36 :b #x48 :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x41 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x5 :g #x35 :b #x40 :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x8 :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x43 :a #x80) - (new 'static 'rgba :r #x9 :g #x3c :b #x42 :a #x80) - (new 'static 'rgba :r #xa :g #x3c :b #x3d :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x3a :a #x80) - (new 'static 'rgba :r #xc :g #x39 :b #x37 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x36 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x33 :a #x80) - (new 'static 'rgba :r #xb :g #x3b :b #x2f :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x2b :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x27 :a #x80) - (new 'static 'rgba :r #x8 :g #x37 :b #x24 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x20 :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x18 :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x16 :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x11 :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xd :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xa :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x9 :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xc :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xd :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xe :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x12 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x15 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x1b :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x23 :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x28 :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x2f :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x37 :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x3a :a #x80) - (new 'static 'rgba :r #xd :g #x40 :b #x43 :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x48 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x4b :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x4c :a #x80) - (new 'static 'rgba :r #xb :g #x37 :b #x49 :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x4 :g #x34 :b #x3f :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x3 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x35 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x41 :a #x80) - (new 'static 'rgba :r #x7 :g #x38 :b #x40 :a #x80) - (new 'static 'rgba :r #x8 :g #x38 :b #x3f :a #x80) - (new 'static 'rgba :r #x9 :g #x3a :b #x3d :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x39 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x38 :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x35 :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x31 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x30 :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x2d :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x2c :a #x80) - (new 'static 'rgba :r #x9 :g #x35 :b #x28 :a #x80) - (new 'static 'rgba :r #x8 :g #x34 :b #x24 :a #x80) - (new 'static 'rgba :r #x7 :g #x32 :b #x22 :a #x80) - (new 'static 'rgba :r #x6 :g #x31 :b #x1a :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x16 :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x15 :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x11 :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x10 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x12 :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x11 :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x11 :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x15 :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x18 :a #x80) - (new 'static 'rgba :r #x6 :g #x30 :b #x1b :a #x80) - (new 'static 'rgba :r #x8 :g #x31 :b #x20 :a #x80) - (new 'static 'rgba :r #x9 :g #x33 :b #x26 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x2e :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x37 :a #x80) - (new 'static 'rgba :r #xc :g #x3d :b #x3d :a #x80) - (new 'static 'rgba :r #xc :g #x40 :b #x45 :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x48 :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x4a :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #x8 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x41 :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x36 :b #x3e :a #x80) - (new 'static 'rgba :r #x6 :g #x37 :b #x3d :a #x80) - (new 'static 'rgba :r #x7 :g #x38 :b #x3d :a #x80) - (new 'static 'rgba :r #x8 :g #x38 :b #x3d :a #x80) - (new 'static 'rgba :r #x9 :g #x3a :b #x38 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x39 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x34 :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x34 :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x30 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x32 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x2f :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x2e :a #x80) - (new 'static 'rgba :r #x8 :g #x34 :b #x29 :a #x80) - (new 'static 'rgba :r #x7 :g #x32 :b #x27 :a #x80) - (new 'static 'rgba :r #x6 :g #x31 :b #x23 :a #x80) - (new 'static 'rgba :r #x6 :g #x30 :b #x23 :a #x80) - (new 'static 'rgba :r #x6 :g #x30 :b #x21 :a #x80) - (new 'static 'rgba :r #x7 :g #x2f :b #x20 :a #x80) - (new 'static 'rgba :r #x6 :g #x2f :b #x1e :a #x80) - (new 'static 'rgba :r #x5 :g #x2e :b #x1b :a #x80) - (new 'static 'rgba :r #x5 :g #x2e :b #x1c :a #x80) - (new 'static 'rgba :r #x6 :g #x2e :b #x1d :a #x80) - (new 'static 'rgba :r #x6 :g #x2f :b #x1f :a #x80) - (new 'static 'rgba :r #x6 :g #x31 :b #x23 :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x29 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x2c :a #x80) - (new 'static 'rgba :r #x8 :g #x37 :b #x31 :a #x80) - (new 'static 'rgba :r #x8 :g #x3a :b #x39 :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x41 :a #x80) - (new 'static 'rgba :r #xa :g #x3c :b #x44 :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x8 :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x41 :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3c :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3c :a #x80) - (new 'static 'rgba :r #x5 :g #x35 :b #x3d :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x3d :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x3e :a #x80) - (new 'static 'rgba :r #x7 :g #x39 :b #x3e :a #x80) - (new 'static 'rgba :r #x8 :g #x3c :b #x3e :a #x80) - (new 'static 'rgba :r #x8 :g #x39 :b #x3c :a #x80) - (new 'static 'rgba :r #x8 :g #x39 :b #x3a :a #x80) - (new 'static 'rgba :r #x8 :g #x38 :b #x39 :a #x80) - (new 'static 'rgba :r #x8 :g #x38 :b #x39 :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x38 :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x37 :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x34 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x35 :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x34 :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x33 :a #x80) - (new 'static 'rgba :r #x7 :g #x38 :b #x33 :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x33 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x2f :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x2d :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x2a :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x28 :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x29 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x2a :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x30 :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x34 :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x38 :a #x80) - (new 'static 'rgba :r #x5 :g #x36 :b #x3c :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x3f :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x41 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x2 :g #x30 :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2b :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) - (new 'static 'rgba :r #x4 :g #x33 :b #x3c :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x3e :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x3e :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x3d :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x3d :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x3d :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x3c :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x3b :a #x80) - (new 'static 'rgba :r #x5 :g #x35 :b #x3b :a #x80) - (new 'static 'rgba :r #x5 :g #x36 :b #x3b :a #x80) - (new 'static 'rgba :r #x4 :g #x36 :b #x3b :a #x80) - (new 'static 'rgba :r #x5 :g #x35 :b #x3b :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x3d :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x3e :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x3e :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x3d :a #x80) - (new 'static 'rgba :r #x5 :g #x36 :b #x3b :a #x80) - (new 'static 'rgba :r #x4 :g #x36 :b #x38 :a #x80) - (new 'static 'rgba :r #x4 :g #x35 :b #x36 :a #x80) - (new 'static 'rgba :r #x4 :g #x35 :b #x35 :a #x80) - (new 'static 'rgba :r #x4 :g #x35 :b #x36 :a #x80) - (new 'static 'rgba :r #x4 :g #x35 :b #x37 :a #x80) - (new 'static 'rgba :r #x4 :g #x33 :b #x39 :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3a :a #x80) - (new 'static 'rgba :r #x4 :g #x33 :b #x3b :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x32 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2b :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2b :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - ) - ) - ) -(define *ocean-near-indices-village1* (new 'static 'ocean-near-indices :data #xa8d0)) -(define *ocean-trans-indices-village1* (new 'static 'ocean-trans-indices - :data (new 'static 'array uint32 2304 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #xffffffff - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x1011b - #xffffffff - #x2011c - #x3011d - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x40000 - #x5011e - #x6011f - #x70000 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x80000 - #x90000 - #xa0120 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xb0121 - #xc0021 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xd0000 - #xe0122 - #xffffffff - #xffffffff - #xffffffff - #xf0123 - #x100124 - #x110125 - #x120000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x130126 - #xffffffff - #xffffffff - #x14011d - #x150127 - #x160047 - #x170128 - #x180000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x190129 - #x1a012a - #x1b012b - #x1c0000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x1d00c5 - #x1e0006 - #x1f0000 - #x200017 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x210000 - #x220000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x230000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x240000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x250000 - #x260000 - #x270000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x280000 - #x29012c - #x2a012d - #x2b0000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x2c012e - #x2d002d - #x2e0006 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x2f008b - #x30012f - #x310130 - #x320131 - #x330000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x340132 - #x350133 - #x36012a - #x370012 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x380003 - #x39007c - #x0 - #x3a0134 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x3b0000 - #x3c0069 - #x3d0000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x3e0014 - #x3f0135 - #x400136 - #x410137 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x420000 - #x430000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - ) - ) - ) -(define *ocean-mid-indices-village1* (new 'static 'ocean-mid-indices - :data (new 'static 'array uint16 36 - #x138 - #xffff - #x139 - #x13a - #x0 - #x0 - #x13b - #x13c - #x13d - #x13e - #x0 - #x0 - #x0 - #x0 - #x13f - #x140 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - ) - ) - ) -(define *ocean-mid-masks-village1* (new 'static 'ocean-mid-masks :data #x7a50)) - -(define *ocean-spheres-village2* (new 'static 'ocean-spheres - :spheres (new 'static 'inline-array sphere 36 - (new 'static 'sphere :x -6320128.0 :z -14385152.0 :w 2224365.5) - (new 'static 'sphere :x -3174400.0 :z -14385152.0 :w 2224365.5) - (new 'static 'sphere :x -28672.0 :z -14385152.0 :w 2224365.5) - (new 'static 'sphere :x 3117056.0 :z -14385152.0 :w 2224365.5) - (new 'static 'sphere :x 6262784.0 :z -14385152.0 :w 2224365.5) - (new 'static 'sphere :x 9408512.0 :z -14385152.0 :w 2224365.5) - (new 'static 'sphere :x -6320128.0 :z -11239424.0 :w 2224365.5) - (new 'static 'sphere :x -3174400.0 :z -11239424.0 :w 2224365.5) - (new 'static 'sphere :x -28672.0 :z -11239424.0 :w 2224365.5) - (new 'static 'sphere :x 3117056.0 :z -11239424.0 :w 2224365.5) - (new 'static 'sphere :x 6262784.0 :z -11239424.0 :w 2224365.5) - (new 'static 'sphere :x 9408512.0 :z -11239424.0 :w 2224365.5) - (new 'static 'sphere :x -6320128.0 :z -8093696.0 :w 2224365.5) - (new 'static 'sphere :x -3174400.0 :z -8093696.0 :w 2224365.5) - (new 'static 'sphere :x -28672.0 :z -8093696.0 :w 2224365.5) - (new 'static 'sphere :x 3117056.0 :z -8093696.0 :w 2224365.5) - (new 'static 'sphere :x 6262784.0 :z -8093696.0 :w 2224365.5) - (new 'static 'sphere :x 9408512.0 :z -8093696.0 :w 2224365.5) - (new 'static 'sphere :x -6320128.0 :z -4947968.0 :w 2224365.5) - (new 'static 'sphere :x -3174400.0 :z -4947968.0 :w 2224365.5) - (new 'static 'sphere :x -28672.0 :z -4947968.0 :w 2224365.5) - (new 'static 'sphere :x 3117056.0 :z -4947968.0 :w 2224365.5) - (new 'static 'sphere :x 6262784.0 :z -4947968.0 :w 2224365.5) - (new 'static 'sphere :x 9408512.0 :z -4947968.0 :w 2224365.5) - (new 'static 'sphere :x -6320128.0 :z -1802240.0 :w 2224365.5) - (new 'static 'sphere :x -3174400.0 :z -1802240.0 :w 2224365.5) - (new 'static 'sphere :x -28672.0 :z -1802240.0 :w 2224365.5) - (new 'static 'sphere :x 3117056.0 :z -1802240.0 :w 2224365.5) - (new 'static 'sphere :x 6262784.0 :z -1802240.0 :w 2224365.5) - (new 'static 'sphere :x 9408512.0 :z -1802240.0 :w 2224365.5) - (new 'static 'sphere :x -6320128.0 :z 1343488.0 :w 2224365.5) - (new 'static 'sphere :x -3174400.0 :z 1343488.0 :w 2224365.5) - (new 'static 'sphere :x -28672.0 :z 1343488.0 :w 2224365.5) - (new 'static 'sphere :x 3117056.0 :z 1343488.0 :w 2224365.5) - (new 'static 'sphere :x 6262784.0 :z 1343488.0 :w 2224365.5) - (new 'static 'sphere :x 9408512.0 :z 1343488.0 :w 2224365.5) - ) - ) - ) -(define *ocean-colors-village2* (new 'static 'ocean-colors - :colors (new 'static 'array rgba 2548 - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x3d :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3c :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x25 :g #x4d :b #x50 :a #x80) - (new 'static 'rgba :r #x23 :g #x47 :b #x4d :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #x23 :g #x3f :b #x49 :a #x80) - (new 'static 'rgba :r #x22 :g #x3f :b #x49 :a #x80) - (new 'static 'rgba :r #x22 :g #x3e :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x3d :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3c :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x21 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #x23 :g #x3f :b #x4a :a #x80) - (new 'static 'rgba :r #x23 :g #x40 :b #x4a :a #x80) - (new 'static 'rgba :r #x23 :g #x41 :b #x4b :a #x80) - (new 'static 'rgba :r #x22 :g #x41 :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x41 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x40 :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x3f :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x3d :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x3d :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x40 :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x42 :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x42 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x45 :b #x4b :a #x80) - (new 'static 'rgba :r #x1f :g #x45 :b #x4a :a #x80) - (new 'static 'rgba :r #x1f :g #x45 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x44 :b #x4c :a #x80) - (new 'static 'rgba :r #x20 :g #x44 :b #x4b :a #x80) - (new 'static 'rgba :r #x20 :g #x47 :b #x4b :a #x80) - (new 'static 'rgba :r #x20 :g #x47 :b #x4c :a #x80) - (new 'static 'rgba :r #x21 :g #x49 :b #x4d :a #x80) - (new 'static 'rgba :r #x20 :g #x48 :b #x4c :a #x80) - (new 'static 'rgba :r #x20 :g #x47 :b #x4b :a #x80) - (new 'static 'rgba :r #x1f :g #x43 :b #x4b :a #x80) - (new 'static 'rgba :r #x1f :g #x45 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x42 :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x42 :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x41 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x40 :b #x48 :a #x80) - (new 'static 'rgba :r #x21 :g #x3f :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x22 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x3a :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x3c :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x41 :b #x4a :a #x80) - (new 'static 'rgba :r #x22 :g #x42 :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x43 :b #x4c :a #x80) - (new 'static 'rgba :r #x20 :g #x43 :b #x4b :a #x80) - (new 'static 'rgba :r #x1e :g #x44 :b #x4a :a #x80) - (new 'static 'rgba :r #x1e :g #x42 :b #x4a :a #x80) - (new 'static 'rgba :r #x1d :g #x42 :b #x49 :a #x80) - (new 'static 'rgba :r #x1d :g #x44 :b #x4a :a #x80) - (new 'static 'rgba :r #x1d :g #x44 :b #x4a :a #x80) - (new 'static 'rgba :r #x1d :g #x44 :b #x4b :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x4b :a #x80) - (new 'static 'rgba :r #x1c :g #x49 :b #x4d :a #x80) - (new 'static 'rgba :r #x1d :g #x4e :b #x4f :a #x80) - (new 'static 'rgba :r #x1d :g #x50 :b #x4f :a #x80) - (new 'static 'rgba :r #x1e :g #x51 :b #x50 :a #x80) - (new 'static 'rgba :r #x1e :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x1e :g #x51 :b #x51 :a #x80) - (new 'static 'rgba :r #x1e :g #x51 :b #x4e :a #x80) - (new 'static 'rgba :r #x20 :g #x51 :b #x52 :a #x80) - (new 'static 'rgba :r #x20 :g #x53 :b #x51 :a #x80) - (new 'static 'rgba :r #x22 :g #x53 :b #x51 :a #x80) - (new 'static 'rgba :r #x21 :g #x53 :b #x52 :a #x80) - (new 'static 'rgba :r #x20 :g #x50 :b #x52 :a #x80) - (new 'static 'rgba :r #x1f :g #x51 :b #x50 :a #x80) - (new 'static 'rgba :r #x1f :g #x4f :b #x51 :a #x80) - (new 'static 'rgba :r #x1e :g #x51 :b #x50 :a #x80) - (new 'static 'rgba :r #x1f :g #x50 :b #x52 :a #x80) - (new 'static 'rgba :r #x1f :g #x4e :b #x50 :a #x80) - (new 'static 'rgba :r #x1e :g #x4d :b #x4e :a #x80) - (new 'static 'rgba :r #x20 :g #x4d :b #x4e :a #x80) - (new 'static 'rgba :r #x21 :g #x44 :b #x4c :a #x80) - (new 'static 'rgba :r #x22 :g #x40 :b #x4a :a #x80) - (new 'static 'rgba :r #x22 :g #x3f :b #x49 :a #x80) - (new 'static 'rgba :r #x22 :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #x23 :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #x23 :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x22 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x21 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x31 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1e :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x1e :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x40 :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x41 :b #x4a :a #x80) - (new 'static 'rgba :r #x1f :g #x42 :b #x4a :a #x80) - (new 'static 'rgba :r #x1d :g #x45 :b #x4a :a #x80) - (new 'static 'rgba :r #x1b :g #x44 :b #x4a :a #x80) - (new 'static 'rgba :r #x1a :g #x44 :b #x49 :a #x80) - (new 'static 'rgba :r #x19 :g #x43 :b #x49 :a #x80) - (new 'static 'rgba :r #x19 :g #x44 :b #x48 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x48 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x4a :a #x80) - (new 'static 'rgba :r #x19 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x19 :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x1b :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x1d :g #x51 :b #x4e :a #x80) - (new 'static 'rgba :r #x1e :g #x50 :b #x4b :a #x80) - (new 'static 'rgba :r #x1d :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x1f :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x20 :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x21 :g #x53 :b #x51 :a #x80) - (new 'static 'rgba :r #x23 :g #x54 :b #x50 :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x52 :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x54 :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x54 :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x53 :a #x80) - (new 'static 'rgba :r #x24 :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x23 :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x23 :g #x52 :b #x52 :a #x80) - (new 'static 'rgba :r #x23 :g #x53 :b #x51 :a #x80) - (new 'static 'rgba :r #x20 :g #x52 :b #x4e :a #x80) - (new 'static 'rgba :r #x1e :g #x51 :b #x4d :a #x80) - (new 'static 'rgba :r #x1d :g #x50 :b #x50 :a #x80) - (new 'static 'rgba :r #x1c :g #x4f :b #x4f :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x4e :a #x80) - (new 'static 'rgba :r #x20 :g #x47 :b #x4d :a #x80) - (new 'static 'rgba :r #x23 :g #x44 :b #x4c :a #x80) - (new 'static 'rgba :r #x23 :g #x40 :b #x4b :a #x80) - (new 'static 'rgba :r #x23 :g #x3b :b #x4a :a #x80) - (new 'static 'rgba :r #x22 :g #x37 :b #x47 :a #x80) - (new 'static 'rgba :r #x22 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1e :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x1d :g #x3a :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x3d :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #x1e :g #x41 :b #x48 :a #x80) - (new 'static 'rgba :r #x1b :g #x43 :b #x48 :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x48 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x48 :a #x80) - (new 'static 'rgba :r #x16 :g #x44 :b #x47 :a #x80) - (new 'static 'rgba :r #x16 :g #x45 :b #x47 :a #x80) - (new 'static 'rgba :r #x16 :g #x46 :b #x47 :a #x80) - (new 'static 'rgba :r #x15 :g #x47 :b #x46 :a #x80) - (new 'static 'rgba :r #x15 :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x17 :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x18 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x1b :g #x4e :b #x4b :a #x80) - (new 'static 'rgba :r #x1d :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x1d :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x1f :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x21 :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x21 :g #x52 :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x4f :a #x80) - (new 'static 'rgba :r #x26 :g #x52 :b #x53 :a #x80) - (new 'static 'rgba :r #x28 :g #x54 :b #x51 :a #x80) - (new 'static 'rgba :r #x28 :g #x54 :b #x54 :a #x80) - (new 'static 'rgba :r #x29 :g #x55 :b #x52 :a #x80) - (new 'static 'rgba :r #x29 :g #x55 :b #x53 :a #x80) - (new 'static 'rgba :r #x28 :g #x55 :b #x50 :a #x80) - (new 'static 'rgba :r #x28 :g #x55 :b #x50 :a #x80) - (new 'static 'rgba :r #x28 :g #x54 :b #x51 :a #x80) - (new 'static 'rgba :r #x27 :g #x54 :b #x52 :a #x80) - (new 'static 'rgba :r #x25 :g #x52 :b #x52 :a #x80) - (new 'static 'rgba :r #x23 :g #x52 :b #x4f :a #x80) - (new 'static 'rgba :r #x22 :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x20 :g #x52 :b #x4e :a #x80) - (new 'static 'rgba :r #x1e :g #x51 :b #x4d :a #x80) - (new 'static 'rgba :r #x1d :g #x4f :b #x4f :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x4e :a #x80) - (new 'static 'rgba :r #x22 :g #x44 :b #x4d :a #x80) - (new 'static 'rgba :r #x23 :g #x3f :b #x4c :a #x80) - (new 'static 'rgba :r #x22 :g #x3a :b #x48 :a #x80) - (new 'static 'rgba :r #x25 :g #x51 :b #x53 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1e :g #x37 :b #x43 :a #x80) - (new 'static 'rgba :r #x1e :g #x3b :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x3f :b #x48 :a #x80) - (new 'static 'rgba :r #x1d :g #x41 :b #x47 :a #x80) - (new 'static 'rgba :r #x1a :g #x43 :b #x47 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x47 :a #x80) - (new 'static 'rgba :r #x16 :g #x45 :b #x47 :a #x80) - (new 'static 'rgba :r #x14 :g #x47 :b #x44 :a #x80) - (new 'static 'rgba :r #x12 :g #x45 :b #x44 :a #x80) - (new 'static 'rgba :r #x12 :g #x43 :b #x45 :a #x80) - (new 'static 'rgba :r #x12 :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x12 :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x14 :g #x47 :b #x44 :a #x80) - (new 'static 'rgba :r #x15 :g #x4a :b #x46 :a #x80) - (new 'static 'rgba :r #x18 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x1a :g #x4c :b #x47 :a #x80) - (new 'static 'rgba :r #x1c :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x1e :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x1e :g #x4e :b #x4b :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x4d :a #x80) - (new 'static 'rgba :r #x22 :g #x4d :b #x4e :a #x80) - (new 'static 'rgba :r #x23 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x26 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x28 :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x29 :g #x54 :b #x53 :a #x80) - (new 'static 'rgba :r #x2b :g #x56 :b #x51 :a #x80) - (new 'static 'rgba :r #x29 :g #x53 :b #x50 :a #x80) - (new 'static 'rgba :r #x27 :g #x53 :b #x4e :a #x80) - (new 'static 'rgba :r #x27 :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x27 :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x28 :g #x52 :b #x50 :a #x80) - (new 'static 'rgba :r #x28 :g #x52 :b #x4f :a #x80) - (new 'static 'rgba :r #x27 :g #x51 :b #x52 :a #x80) - (new 'static 'rgba :r #x26 :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x23 :g #x51 :b #x4e :a #x80) - (new 'static 'rgba :r #x20 :g #x53 :b #x4e :a #x80) - (new 'static 'rgba :r #x1e :g #x52 :b #x4d :a #x80) - (new 'static 'rgba :r #x1c :g #x4f :b #x4f :a #x80) - (new 'static 'rgba :r #x1e :g #x4d :b #x4e :a #x80) - (new 'static 'rgba :r #x23 :g #x46 :b #x4e :a #x80) - (new 'static 'rgba :r #x23 :g #x3e :b #x4a :a #x80) - (new 'static 'rgba :r #x22 :g #x37 :b #x47 :a #x80) - (new 'static 'rgba :r #x22 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1e :g #x38 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x3e :b #x46 :a #x80) - (new 'static 'rgba :r #x1d :g #x44 :b #x49 :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x48 :a #x80) - (new 'static 'rgba :r #x18 :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x15 :g #x48 :b #x45 :a #x80) - (new 'static 'rgba :r #x13 :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x11 :g #x44 :b #x44 :a #x80) - (new 'static 'rgba :r #x10 :g #x43 :b #x43 :a #x80) - (new 'static 'rgba :r #xe :g #x42 :b #x41 :a #x80) - (new 'static 'rgba :r #x10 :g #x43 :b #x40 :a #x80) - (new 'static 'rgba :r #x1a :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x14 :g #x47 :b #x44 :a #x80) - (new 'static 'rgba :r #x16 :g #x47 :b #x44 :a #x80) - (new 'static 'rgba :r #x17 :g #x49 :b #x46 :a #x80) - (new 'static 'rgba :r #x18 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x19 :g #x4a :b #x46 :a #x80) - (new 'static 'rgba :r #x1d :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x1f :g #x4a :b #x4b :a #x80) - (new 'static 'rgba :r #x20 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x23 :g #x4e :b #x4b :a #x80) - (new 'static 'rgba :r #x24 :g #x4e :b #x4e :a #x80) - (new 'static 'rgba :r #x29 :g #x54 :b #x50 :a #x80) - (new 'static 'rgba :r #x31 :g #x59 :b #x54 :a #x80) - (new 'static 'rgba :r #x2f :g #x58 :b #x55 :a #x80) - (new 'static 'rgba :r #x29 :g #x54 :b #x51 :a #x80) - (new 'static 'rgba :r #x25 :g #x51 :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x4e :a #x80) - (new 'static 'rgba :r #x27 :g #x52 :b #x50 :a #x80) - (new 'static 'rgba :r #x2b :g #x55 :b #x51 :a #x80) - (new 'static 'rgba :r #x29 :g #x53 :b #x52 :a #x80) - (new 'static 'rgba :r #x27 :g #x50 :b #x51 :a #x80) - (new 'static 'rgba :r #x24 :g #x4f :b #x4e :a #x80) - (new 'static 'rgba :r #x21 :g #x4e :b #x4f :a #x80) - (new 'static 'rgba :r #x20 :g #x51 :b #x4b :a #x80) - (new 'static 'rgba :r #x1c :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x1b :g #x4d :b #x4f :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x4f :a #x80) - (new 'static 'rgba :r #x23 :g #x43 :b #x4c :a #x80) - (new 'static 'rgba :r #x21 :g #x3c :b #x48 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1e :g #x3a :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x46 :b #x4a :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x4d :a #x80) - (new 'static 'rgba :r #x18 :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x16 :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x15 :g #x49 :b #x45 :a #x80) - (new 'static 'rgba :r #x14 :g #x49 :b #x45 :a #x80) - (new 'static 'rgba :r #x12 :g #x45 :b #x44 :a #x80) - (new 'static 'rgba :r #x10 :g #x43 :b #x40 :a #x80) - (new 'static 'rgba :r #xf :g #x42 :b #x41 :a #x80) - (new 'static 'rgba :r #x10 :g #x45 :b #x41 :a #x80) - (new 'static 'rgba :r #x12 :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x14 :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x16 :g #x46 :b #x47 :a #x80) - (new 'static 'rgba :r #x17 :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x18 :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x19 :g #x48 :b #x44 :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x1b :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x1b :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x4c :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x4c :a #x80) - (new 'static 'rgba :r #x25 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x2e :g #x56 :b #x54 :a #x80) - (new 'static 'rgba :r #x2e :g #x55 :b #x52 :a #x80) - (new 'static 'rgba :r #x2b :g #x53 :b #x53 :a #x80) - (new 'static 'rgba :r #x23 :g #x4f :b #x49 :a #x80) - (new 'static 'rgba :r #x22 :g #x4f :b #x48 :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x4c :a #x80) - (new 'static 'rgba :r #x2b :g #x55 :b #x51 :a #x80) - (new 'static 'rgba :r #x2b :g #x55 :b #x52 :a #x80) - (new 'static 'rgba :r #x27 :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x23 :g #x4e :b #x4d :a #x80) - (new 'static 'rgba :r #x22 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x1c :g #x4f :b #x4a :a #x80) - (new 'static 'rgba :r #x1a :g #x4f :b #x4a :a #x80) - (new 'static 'rgba :r #x1b :g #x4c :b #x4e :a #x80) - (new 'static 'rgba :r #x20 :g #x47 :b #x4d :a #x80) - (new 'static 'rgba :r #x22 :g #x3f :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1e :g #x3c :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x4a :b #x4c :a #x80) - (new 'static 'rgba :r #x1c :g #x4d :b #x4e :a #x80) - (new 'static 'rgba :r #x19 :g #x4e :b #x4d :a #x80) - (new 'static 'rgba :r #x18 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x19 :g #x4c :b #x47 :a #x80) - (new 'static 'rgba :r #x17 :g #x48 :b #x48 :a #x80) - (new 'static 'rgba :r #x15 :g #x46 :b #x46 :a #x80) - (new 'static 'rgba :r #x12 :g #x45 :b #x41 :a #x80) - (new 'static 'rgba :r #x11 :g #x44 :b #x3f :a #x80) - (new 'static 'rgba :r #x12 :g #x44 :b #x41 :a #x80) - (new 'static 'rgba :r #x14 :g #x44 :b #x42 :a #x80) - (new 'static 'rgba :r #x15 :g #x45 :b #x41 :a #x80) - (new 'static 'rgba :r #x16 :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x45 :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x42 :a #x80) - (new 'static 'rgba :r #x1a :g #x46 :b #x43 :a #x80) - (new 'static 'rgba :r #x15 :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x4a :b #x49 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x4c :b #x4b :a #x80) - (new 'static 'rgba :r #x2b :g #x53 :b #x52 :a #x80) - (new 'static 'rgba :r #x25 :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x29 :g #x51 :b #x4e :a #x80) - (new 'static 'rgba :r #x28 :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x4f :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x22 :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x24 :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x25 :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x22 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x1e :g #x4e :b #x49 :a #x80) - (new 'static 'rgba :r #x1a :g #x4e :b #x4d :a #x80) - (new 'static 'rgba :r #x1a :g #x4e :b #x4d :a #x80) - (new 'static 'rgba :r #x1d :g #x47 :b #x4d :a #x80) - (new 'static 'rgba :r #x21 :g #x40 :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x39 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x42 :b #x49 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x4c :a #x80) - (new 'static 'rgba :r #x1b :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x19 :g #x4c :b #x4b :a #x80) - (new 'static 'rgba :r #x1a :g #x4a :b #x49 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x46 :a #x80) - (new 'static 'rgba :r #x16 :g #x43 :b #x44 :a #x80) - (new 'static 'rgba :r #x13 :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x15 :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x15 :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x45 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x42 :a #x80) - (new 'static 'rgba :r #x19 :g #x43 :b #x44 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x41 :a #x80) - (new 'static 'rgba :r #x1a :g #x46 :b #x43 :a #x80) - (new 'static 'rgba :r #x1b :g #x47 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x1d :g #x48 :b #x47 :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x25 :g #x4d :b #x49 :a #x80) - (new 'static 'rgba :r #x1d :g #x48 :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x22 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x25 :g #x4d :b #x4d :a #x80) - (new 'static 'rgba :r #x23 :g #x4d :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x4d :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x46 :a #x80) - (new 'static 'rgba :r #x27 :g #x52 :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x4e :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x1e :g #x4d :b #x49 :a #x80) - (new 'static 'rgba :r #x1b :g #x4e :b #x49 :a #x80) - (new 'static 'rgba :r #x18 :g #x4e :b #x47 :a #x80) - (new 'static 'rgba :r #x1a :g #x4a :b #x4c :a #x80) - (new 'static 'rgba :r #x1f :g #x41 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x39 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x40 :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x48 :b #x4c :a #x80) - (new 'static 'rgba :r #x1d :g #x4d :b #x4d :a #x80) - (new 'static 'rgba :r #x1d :g #x4d :b #x4d :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x49 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x48 :a #x80) - (new 'static 'rgba :r #x1b :g #x48 :b #x44 :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x43 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x43 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x44 :a #x80) - (new 'static 'rgba :r #x1a :g #x44 :b #x43 :a #x80) - (new 'static 'rgba :r #x1a :g #x43 :b #x44 :a #x80) - (new 'static 'rgba :r #x19 :g #x44 :b #x42 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x19 :g #x43 :b #x44 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x43 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x19 :g #x42 :b #x43 :a #x80) - (new 'static 'rgba :r #x18 :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x19 :g #x44 :b #x43 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x45 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x47 :a #x80) - (new 'static 'rgba :r #x1b :g #x43 :b #x46 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x44 :a #x80) - (new 'static 'rgba :r #x1b :g #x47 :b #x46 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x45 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x49 :b #x4a :a #x80) - (new 'static 'rgba :r #x26 :g #x4d :b #x4d :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x21 :g #x4d :b #x48 :a #x80) - (new 'static 'rgba :r #x28 :g #x52 :b #x4c :a #x80) - (new 'static 'rgba :r #x26 :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x23 :g #x4d :b #x4d :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x4a :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x49 :a #x80) - (new 'static 'rgba :r #x1c :g #x4d :b #x49 :a #x80) - (new 'static 'rgba :r #x19 :g #x4e :b #x4a :a #x80) - (new 'static 'rgba :r #x19 :g #x4b :b #x4c :a #x80) - (new 'static 'rgba :r #x1d :g #x45 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x31 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1d :g #x3a :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x3e :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x48 :b #x4b :a #x80) - (new 'static 'rgba :r #x20 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x20 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x1f :g #x4a :b #x49 :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x21 :g #x48 :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x1d :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x1b :g #x44 :b #x45 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x45 :a #x80) - (new 'static 'rgba :r #x19 :g #x44 :b #x42 :a #x80) - (new 'static 'rgba :r #x19 :g #x44 :b #x43 :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x16 :g #x42 :b #x41 :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x18 :g #x42 :b #x42 :a #x80) - (new 'static 'rgba :r #x17 :g #x42 :b #x3f :a #x80) - (new 'static 'rgba :r #x16 :g #x41 :b #x42 :a #x80) - (new 'static 'rgba :r #x14 :g #x40 :b #x41 :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x42 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x42 :a #x80) - (new 'static 'rgba :r #x14 :g #x43 :b #x41 :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x41 :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x44 :a #x80) - (new 'static 'rgba :r #x1d :g #x46 :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x47 :a #x80) - (new 'static 'rgba :r #x22 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x4a :a #x80) - (new 'static 'rgba :r #x1c :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x1a :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x19 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x1c :g #x48 :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x40 :b #x49 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1d :g #x39 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x41 :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x4c :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x51 :a #x80) - (new 'static 'rgba :r #x24 :g #x50 :b #x50 :a #x80) - (new 'static 'rgba :r #x25 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x25 :g #x4b :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x4d :b #x49 :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x1e :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x1a :g #x44 :b #x44 :a #x80) - (new 'static 'rgba :r #x16 :g #x42 :b #x41 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x42 :a #x80) - (new 'static 'rgba :r #x14 :g #x42 :b #x40 :a #x80) - (new 'static 'rgba :r #x16 :g #x43 :b #x41 :a #x80) - (new 'static 'rgba :r #x14 :g #x40 :b #x41 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x3f :a #x80) - (new 'static 'rgba :r #x10 :g #x41 :b #x3c :a #x80) - (new 'static 'rgba :r #xd :g #x3f :b #x3a :a #x80) - (new 'static 'rgba :r #xb :g #x3e :b #x3d :a #x80) - (new 'static 'rgba :r #xb :g #x3f :b #x3c :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x3d :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x40 :a #x80) - (new 'static 'rgba :r #x15 :g #x41 :b #x40 :a #x80) - (new 'static 'rgba :r #x18 :g #x43 :b #x43 :a #x80) - (new 'static 'rgba :r #x1a :g #x44 :b #x45 :a #x80) - (new 'static 'rgba :r #x1e :g #x47 :b #x46 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x49 :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x1e :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x1d :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x1b :g #x4d :b #x48 :a #x80) - (new 'static 'rgba :r #x1a :g #x4e :b #x4b :a #x80) - (new 'static 'rgba :r #x1a :g #x49 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1d :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x43 :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x49 :b #x4e :a #x80) - (new 'static 'rgba :r #x25 :g #x51 :b #x51 :a #x80) - (new 'static 'rgba :r #x27 :g #x51 :b #x52 :a #x80) - (new 'static 'rgba :r #x26 :g #x50 :b #x4f :a #x80) - (new 'static 'rgba :r #x27 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x28 :g #x4e :b #x4e :a #x80) - (new 'static 'rgba :r #x28 :g #x51 :b #x4d :a #x80) - (new 'static 'rgba :r #x28 :g #x51 :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x26 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x24 :g #x4d :b #x4c :a #x80) - (new 'static 'rgba :r #x23 :g #x4a :b #x4b :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x1f :g #x48 :b #x48 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x45 :a #x80) - (new 'static 'rgba :r #x17 :g #x44 :b #x42 :a #x80) - (new 'static 'rgba :r #x14 :g #x42 :b #x3f :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x43 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x40 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x3d :a #x80) - (new 'static 'rgba :r #xb :g #x3e :b #x3c :a #x80) - (new 'static 'rgba :r #xa :g #x3e :b #x3a :a #x80) - (new 'static 'rgba :r #x8 :g #x3c :b #x3a :a #x80) - (new 'static 'rgba :r #x7 :g #x3c :b #x38 :a #x80) - (new 'static 'rgba :r #x8 :g #x3d :b #x3b :a #x80) - (new 'static 'rgba :r #x9 :g #x3c :b #x3b :a #x80) - (new 'static 'rgba :r #xb :g #x3e :b #x3d :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x3c :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x3d :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x1b :g #x45 :b #x45 :a #x80) - (new 'static 'rgba :r #x1c :g #x46 :b #x45 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x46 :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x1e :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x47 :a #x80) - (new 'static 'rgba :r #x1c :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x1a :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x19 :g #x49 :b #x4b :a #x80) - (new 'static 'rgba :r #x1f :g #x42 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x3d :b #x47 :a #x80) - (new 'static 'rgba :r #x23 :g #x45 :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x4b :b #x50 :a #x80) - (new 'static 'rgba :r #x27 :g #x51 :b #x52 :a #x80) - (new 'static 'rgba :r #x2a :g #x54 :b #x52 :a #x80) - (new 'static 'rgba :r #x2a :g #x53 :b #x50 :a #x80) - (new 'static 'rgba :r #x2b :g #x52 :b #x4f :a #x80) - (new 'static 'rgba :r #x2b :g #x52 :b #x4f :a #x80) - (new 'static 'rgba :r #x29 :g #x51 :b #x4d :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x28 :g #x51 :b #x4e :a #x80) - (new 'static 'rgba :r #x25 :g #x4d :b #x4c :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x48 :b #x49 :a #x80) - (new 'static 'rgba :r #x1e :g #x46 :b #x47 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x45 :a #x80) - (new 'static 'rgba :r #x17 :g #x44 :b #x43 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x40 :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x3f :a #x80) - (new 'static 'rgba :r #xd :g #x3e :b #x3b :a #x80) - (new 'static 'rgba :r #xb :g #x3e :b #x3a :a #x80) - (new 'static 'rgba :r #x7 :g #x3b :b #x3a :a #x80) - (new 'static 'rgba :r #x6 :g #x39 :b #x39 :a #x80) - (new 'static 'rgba :r #x5 :g #x38 :b #x37 :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x39 :a #x80) - (new 'static 'rgba :r #x6 :g #x37 :b #x38 :a #x80) - (new 'static 'rgba :r #x5 :g #x39 :b #x37 :a #x80) - (new 'static 'rgba :r #x6 :g #x3b :b #x36 :a #x80) - (new 'static 'rgba :r #x9 :g #x3e :b #x3c :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x3e :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x40 :a #x80) - (new 'static 'rgba :r #x1a :g #x44 :b #x44 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x45 :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x1d :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x1a :g #x4e :b #x48 :a #x80) - (new 'static 'rgba :r #x1a :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x4c :a #x80) - (new 'static 'rgba :r #x21 :g #x3b :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #x24 :g #x4a :b #x4e :a #x80) - (new 'static 'rgba :r #x26 :g #x50 :b #x51 :a #x80) - (new 'static 'rgba :r #x2c :g #x56 :b #x54 :a #x80) - (new 'static 'rgba :r #x2f :g #x57 :b #x57 :a #x80) - (new 'static 'rgba :r #x2e :g #x56 :b #x52 :a #x80) - (new 'static 'rgba :r #x2c :g #x54 :b #x4f :a #x80) - (new 'static 'rgba :r #x2b :g #x52 :b #x4d :a #x80) - (new 'static 'rgba :r #x2c :g #x53 :b #x4e :a #x80) - (new 'static 'rgba :r #x2b :g #x53 :b #x4d :a #x80) - (new 'static 'rgba :r #x2c :g #x54 :b #x4f :a #x80) - (new 'static 'rgba :r #x27 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x29 :g #x51 :b #x4d :a #x80) - (new 'static 'rgba :r #x21 :g #x49 :b #x41 :a #x80) - (new 'static 'rgba :r #x27 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x22 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x44 :a #x80) - (new 'static 'rgba :r #x16 :g #x43 :b #x40 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x3e :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x3b :a #x80) - (new 'static 'rgba :r #xb :g #x3f :b #x3d :a #x80) - (new 'static 'rgba :r #x9 :g #x3d :b #x3a :a #x80) - (new 'static 'rgba :r #x7 :g #x3b :b #x3a :a #x80) - (new 'static 'rgba :r #x6 :g #x39 :b #x38 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x36 :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x35 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x36 :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x36 :a #x80) - (new 'static 'rgba :r #x5 :g #x37 :b #x38 :a #x80) - (new 'static 'rgba :r #x6 :g #x3a :b #x3a :a #x80) - (new 'static 'rgba :r #xb :g #x3e :b #x3c :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x40 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x42 :a #x80) - (new 'static 'rgba :r #x23 :g #x4c :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x4d :b #x48 :a #x80) - (new 'static 'rgba :r #x21 :g #x4d :b #x4c :a #x80) - (new 'static 'rgba :r #x22 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x20 :g #x4f :b #x4e :a #x80) - (new 'static 'rgba :r #x1d :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x1b :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x1e :g #x47 :b #x4d :a #x80) - (new 'static 'rgba :r #x21 :g #x3f :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x21 :g #x41 :b #x49 :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x50 :a #x80) - (new 'static 'rgba :r #x2c :g #x55 :b #x55 :a #x80) - (new 'static 'rgba :r #x31 :g #x5a :b #x58 :a #x80) - (new 'static 'rgba :r #x31 :g #x5a :b #x57 :a #x80) - (new 'static 'rgba :r #x30 :g #x58 :b #x51 :a #x80) - (new 'static 'rgba :r #x2d :g #x54 :b #x4a :a #x80) - (new 'static 'rgba :r #x29 :g #x4f :b #x47 :a #x80) - (new 'static 'rgba :r #x29 :g #x50 :b #x47 :a #x80) - (new 'static 'rgba :r #x2a :g #x51 :b #x4c :a #x80) - (new 'static 'rgba :r #x2c :g #x52 :b #x4d :a #x80) - (new 'static 'rgba :r #x2a :g #x52 :b #x4a :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x4b :a #x80) - (new 'static 'rgba :r #x28 :g #x51 :b #x4b :a #x80) - (new 'static 'rgba :r #x27 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x25 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x1d :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x16 :g #x44 :b #x41 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x3d :a #x80) - (new 'static 'rgba :r #xd :g #x3f :b #x3b :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x3b :a #x80) - (new 'static 'rgba :r #x7 :g #x3c :b #x39 :a #x80) - (new 'static 'rgba :r #x6 :g #x39 :b #x37 :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x37 :a #x80) - (new 'static 'rgba :r #x6 :g #x31 :b #x35 :a #x80) - (new 'static 'rgba :r #x6 :g #x2e :b #x34 :a #x80) - (new 'static 'rgba :r #x6 :g #x2e :b #x34 :a #x80) - (new 'static 'rgba :r #x6 :g #x30 :b #x35 :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x36 :a #x80) - (new 'static 'rgba :r #x6 :g #x39 :b #x36 :a #x80) - (new 'static 'rgba :r #x9 :g #x3d :b #x3b :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x3d :a #x80) - (new 'static 'rgba :r #x19 :g #x44 :b #x45 :a #x80) - (new 'static 'rgba :r #x27 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x26 :g #x50 :b #x4a :a #x80) - (new 'static 'rgba :r #x26 :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x25 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x25 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x23 :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x1f :g #x51 :b #x4e :a #x80) - (new 'static 'rgba :r #x1d :g #x50 :b #x50 :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x4e :a #x80) - (new 'static 'rgba :r #x22 :g #x43 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x41 :b #x49 :a #x80) - (new 'static 'rgba :r #x28 :g #x4b :b #x51 :a #x80) - (new 'static 'rgba :r #x2e :g #x56 :b #x58 :a #x80) - (new 'static 'rgba :r #x33 :g #x5a :b #x59 :a #x80) - (new 'static 'rgba :r #x33 :g #x59 :b #x53 :a #x80) - (new 'static 'rgba :r #x2f :g #x56 :b #x4a :a #x80) - (new 'static 'rgba :r #x29 :g #x4d :b #x3e :a #x80) - (new 'static 'rgba :r #x25 :g #x49 :b #x3a :a #x80) - (new 'static 'rgba :r #x24 :g #x49 :b #x3c :a #x80) - (new 'static 'rgba :r #x26 :g #x4b :b #x3f :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x3e :a #x80) - (new 'static 'rgba :r #x23 :g #x4a :b #x3e :a #x80) - (new 'static 'rgba :r #x24 :g #x4a :b #x42 :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x46 :a #x80) - (new 'static 'rgba :r #x23 :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x16 :g #x40 :b #x41 :a #x80) - (new 'static 'rgba :r #x17 :g #x44 :b #x44 :a #x80) - (new 'static 'rgba :r #x10 :g #x41 :b #x3d :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x3e :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x3b :a #x80) - (new 'static 'rgba :r #x7 :g #x3a :b #x3a :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x39 :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x36 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x35 :a #x80) - (new 'static 'rgba :r #x6 :g #x2f :b #x35 :a #x80) - (new 'static 'rgba :r #x6 :g #x2b :b #x32 :a #x80) - (new 'static 'rgba :r #x7 :g #x2c :b #x34 :a #x80) - (new 'static 'rgba :r #x6 :g #x2f :b #x34 :a #x80) - (new 'static 'rgba :r #x5 :g #x35 :b #x37 :a #x80) - (new 'static 'rgba :r #x8 :g #x3b :b #x3a :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x3f :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x25 :g #x4e :b #x4a :a #x80) - (new 'static 'rgba :r #x29 :g #x51 :b #x51 :a #x80) - (new 'static 'rgba :r #x2a :g #x50 :b #x51 :a #x80) - (new 'static 'rgba :r #x29 :g #x51 :b #x52 :a #x80) - (new 'static 'rgba :r #x28 :g #x52 :b #x50 :a #x80) - (new 'static 'rgba :r #x27 :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x50 :a #x80) - (new 'static 'rgba :r #x1e :g #x50 :b #x50 :a #x80) - (new 'static 'rgba :r #x1f :g #x50 :b #x51 :a #x80) - (new 'static 'rgba :r #x21 :g #x42 :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x22 :g #x3d :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x40 :b #x48 :a #x80) - (new 'static 'rgba :r #x27 :g #x4b :b #x52 :a #x80) - (new 'static 'rgba :r #x2f :g #x57 :b #x57 :a #x80) - (new 'static 'rgba :r #x32 :g #x5a :b #x55 :a #x80) - (new 'static 'rgba :r #x30 :g #x53 :b #x4a :a #x80) - (new 'static 'rgba :r #x2a :g #x4f :b #x3d :a #x80) - (new 'static 'rgba :r #x24 :g #x49 :b #x38 :a #x80) - (new 'static 'rgba :r #x21 :g #x45 :b #x31 :a #x80) - (new 'static 'rgba :r #x21 :g #x44 :b #x31 :a #x80) - (new 'static 'rgba :r #x1e :g #x43 :b #x31 :a #x80) - (new 'static 'rgba :r #x1d :g #x41 :b #x30 :a #x80) - (new 'static 'rgba :r #x1c :g #x42 :b #x30 :a #x80) - (new 'static 'rgba :r #x20 :g #x44 :b #x36 :a #x80) - (new 'static 'rgba :r #x23 :g #x4a :b #x45 :a #x80) - (new 'static 'rgba :r #x1e :g #x45 :b #x47 :a #x80) - (new 'static 'rgba :r #x27 :g #x4d :b #x4e :a #x80) - (new 'static 'rgba :r #x23 :g #x4a :b #x4b :a #x80) - (new 'static 'rgba :r #x1c :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x11 :g #x42 :b #x3f :a #x80) - (new 'static 'rgba :r #xd :g #x3f :b #x3d :a #x80) - (new 'static 'rgba :r #xa :g #x3e :b #x3c :a #x80) - (new 'static 'rgba :r #x7 :g #x3b :b #x3b :a #x80) - (new 'static 'rgba :r #x6 :g #x38 :b #x39 :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x36 :a #x80) - (new 'static 'rgba :r #x7 :g #x31 :b #x36 :a #x80) - (new 'static 'rgba :r #x6 :g #x2e :b #x33 :a #x80) - (new 'static 'rgba :r #x1 :g #x16 :b #x23 :a #x80) - (new 'static 'rgba :r #x7 :g #x2e :b #x33 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x37 :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x36 :a #x80) - (new 'static 'rgba :r #x9 :g #x3b :b #x38 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x3f :a #x80) - (new 'static 'rgba :r #x1b :g #x47 :b #x44 :a #x80) - (new 'static 'rgba :r #x21 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x28 :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x2c :g #x55 :b #x52 :a #x80) - (new 'static 'rgba :r #x2a :g #x52 :b #x53 :a #x80) - (new 'static 'rgba :r #x2b :g #x55 :b #x52 :a #x80) - (new 'static 'rgba :r #x29 :g #x53 :b #x52 :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x20 :g #x52 :b #x4e :a #x80) - (new 'static 'rgba :r #x1e :g #x4f :b #x50 :a #x80) - (new 'static 'rgba :r #x20 :g #x46 :b #x4c :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x47 :a #x80) - (new 'static 'rgba :r #x25 :g #x4b :b #x51 :a #x80) - (new 'static 'rgba :r #x21 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #x28 :g #x4f :b #x52 :a #x80) - (new 'static 'rgba :r #x30 :g #x57 :b #x57 :a #x80) - (new 'static 'rgba :r #x30 :g #x55 :b #x48 :a #x80) - (new 'static 'rgba :r #x2b :g #x4e :b #x3b :a #x80) - (new 'static 'rgba :r #x25 :g #x47 :b #x35 :a #x80) - (new 'static 'rgba :r #x21 :g #x44 :b #x2c :a #x80) - (new 'static 'rgba :r #x1e :g #x3f :b #x2b :a #x80) - (new 'static 'rgba :r #x1d :g #x40 :b #x29 :a #x80) - (new 'static 'rgba :r #x1b :g #x3f :b #x2b :a #x80) - (new 'static 'rgba :r #x1c :g #x3e :b #x29 :a #x80) - (new 'static 'rgba :r #x1b :g #x3e :b #x2b :a #x80) - (new 'static 'rgba :r #x1e :g #x41 :b #x30 :a #x80) - (new 'static 'rgba :r #x27 :g #x4c :b #x45 :a #x80) - (new 'static 'rgba :r #x2b :g #x54 :b #x4f :a #x80) - (new 'static 'rgba :r #x29 :g #x51 :b #x51 :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x1d :g #x45 :b #x47 :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x44 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x40 :a #x80) - (new 'static 'rgba :r #xe :g #x41 :b #x3e :a #x80) - (new 'static 'rgba :r #xa :g #x3d :b #x3a :a #x80) - (new 'static 'rgba :r #x8 :g #x3b :b #x3b :a #x80) - (new 'static 'rgba :r #x6 :g #x3a :b #x37 :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x38 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x35 :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x35 :a #x80) - (new 'static 'rgba :r #x5 :g #x28 :b #x31 :a #x80) - (new 'static 'rgba :r #x6 :g #x2c :b #x33 :a #x80) - (new 'static 'rgba :r #x6 :g #x30 :b #x34 :a #x80) - (new 'static 'rgba :r #x5 :g #x35 :b #x38 :a #x80) - (new 'static 'rgba :r #x9 :g #x3d :b #x3b :a #x80) - (new 'static 'rgba :r #x14 :g #x44 :b #x41 :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x24 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x2b :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x31 :g #x57 :b #x57 :a #x80) - (new 'static 'rgba :r #x2b :g #x54 :b #x52 :a #x80) - (new 'static 'rgba :r #x2e :g #x57 :b #x55 :a #x80) - (new 'static 'rgba :r #x2b :g #x54 :b #x52 :a #x80) - (new 'static 'rgba :r #x27 :g #x54 :b #x54 :a #x80) - (new 'static 'rgba :r #x21 :g #x53 :b #x51 :a #x80) - (new 'static 'rgba :r #x1f :g #x52 :b #x52 :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x52 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #x22 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x21 :g #x42 :b #x4a :a #x80) - (new 'static 'rgba :r #x28 :g #x52 :b #x53 :a #x80) - (new 'static 'rgba :r #x30 :g #x57 :b #x53 :a #x80) - (new 'static 'rgba :r #x2e :g #x52 :b #x43 :a #x80) - (new 'static 'rgba :r #x27 :g #x49 :b #x37 :a #x80) - (new 'static 'rgba :r #x23 :g #x43 :b #x2d :a #x80) - (new 'static 'rgba :r #x1e :g #x40 :b #x2a :a #x80) - (new 'static 'rgba :r #x1d :g #x3e :b #x27 :a #x80) - (new 'static 'rgba :r #x1b :g #x3d :b #x24 :a #x80) - (new 'static 'rgba :r #x1a :g #x3d :b #x27 :a #x80) - (new 'static 'rgba :r #x18 :g #x3b :b #x23 :a #x80) - (new 'static 'rgba :r #x19 :g #x3d :b #x23 :a #x80) - (new 'static 'rgba :r #x1d :g #x40 :b #x2c :a #x80) - (new 'static 'rgba :r #x22 :g #x49 :b #x3f :a #x80) - (new 'static 'rgba :r #x28 :g #x52 :b #x4b :a #x80) - (new 'static 'rgba :r #x2b :g #x52 :b #x50 :a #x80) - (new 'static 'rgba :r #x25 :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x1f :g #x48 :b #x48 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x42 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x41 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x41 :a #x80) - (new 'static 'rgba :r #xb :g #x3e :b #x3a :a #x80) - (new 'static 'rgba :r #x9 :g #x3d :b #x3b :a #x80) - (new 'static 'rgba :r #x6 :g #x3a :b #x38 :a #x80) - (new 'static 'rgba :r #x6 :g #x38 :b #x38 :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x37 :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x35 :a #x80) - (new 'static 'rgba :r #x6 :g #x2f :b #x34 :a #x80) - (new 'static 'rgba :r #x7 :g #x30 :b #x36 :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x37 :a #x80) - (new 'static 'rgba :r #x6 :g #x38 :b #x37 :a #x80) - (new 'static 'rgba :r #x9 :g #x3d :b #x39 :a #x80) - (new 'static 'rgba :r #x16 :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x25 :g #x4e :b #x4b :a #x80) - (new 'static 'rgba :r #x2c :g #x53 :b #x50 :a #x80) - (new 'static 'rgba :r #x35 :g #x5a :b #x59 :a #x80) - (new 'static 'rgba :r #x2f :g #x57 :b #x55 :a #x80) - (new 'static 'rgba :r #x31 :g #x59 :b #x57 :a #x80) - (new 'static 'rgba :r #x2d :g #x56 :b #x56 :a #x80) - (new 'static 'rgba :r #x27 :g #x54 :b #x54 :a #x80) - (new 'static 'rgba :r #x22 :g #x54 :b #x52 :a #x80) - (new 'static 'rgba :r #x20 :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x52 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x21 :g #x3f :b #x4a :a #x80) - (new 'static 'rgba :r #x29 :g #x51 :b #x55 :a #x80) - (new 'static 'rgba :r #x2f :g #x55 :b #x4e :a #x80) - (new 'static 'rgba :r #x29 :g #x4c :b #x3c :a #x80) - (new 'static 'rgba :r #x24 :g #x45 :b #x30 :a #x80) - (new 'static 'rgba :r #x21 :g #x41 :b #x29 :a #x80) - (new 'static 'rgba :r #x1d :g #x3e :b #x26 :a #x80) - (new 'static 'rgba :r #x1b :g #x3d :b #x24 :a #x80) - (new 'static 'rgba :r #x19 :g #x3c :b #x21 :a #x80) - (new 'static 'rgba :r #x1a :g #x3c :b #x25 :a #x80) - (new 'static 'rgba :r #x1b :g #x3e :b #x26 :a #x80) - (new 'static 'rgba :r #x1c :g #x3f :b #x2a :a #x80) - (new 'static 'rgba :r #x1f :g #x42 :b #x30 :a #x80) - (new 'static 'rgba :r #x21 :g #x46 :b #x39 :a #x80) - (new 'static 'rgba :r #x27 :g #x4c :b #x45 :a #x80) - (new 'static 'rgba :r #x28 :g #x51 :b #x4b :a #x80) - (new 'static 'rgba :r #x26 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x1c :g #x45 :b #x46 :a #x80) - (new 'static 'rgba :r #x16 :g #x42 :b #x43 :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x3e :a #x80) - (new 'static 'rgba :r #xd :g #x3e :b #x3e :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x42 :a #x80) - (new 'static 'rgba :r #x8 :g #x3d :b #x38 :a #x80) - (new 'static 'rgba :r #x7 :g #x3a :b #x38 :a #x80) - (new 'static 'rgba :r #x6 :g #x38 :b #x36 :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x35 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x35 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x35 :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x37 :a #x80) - (new 'static 'rgba :r #x5 :g #x39 :b #x36 :a #x80) - (new 'static 'rgba :r #xa :g #x3d :b #x3c :a #x80) - (new 'static 'rgba :r #x14 :g #x44 :b #x41 :a #x80) - (new 'static 'rgba :r #x1a :g #x46 :b #x43 :a #x80) - (new 'static 'rgba :r #x23 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x29 :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x34 :g #x58 :b #x57 :a #x80) - (new 'static 'rgba :r #x34 :g #x59 :b #x56 :a #x80) - (new 'static 'rgba :r #x2e :g #x56 :b #x54 :a #x80) - (new 'static 'rgba :r #x2c :g #x56 :b #x54 :a #x80) - (new 'static 'rgba :r #x28 :g #x55 :b #x55 :a #x80) - (new 'static 'rgba :r #x21 :g #x54 :b #x52 :a #x80) - (new 'static 'rgba :r #x1f :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x4e :a #x80) - (new 'static 'rgba :r #x21 :g #x3b :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1e :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x29 :g #x4c :b #x52 :a #x80) - (new 'static 'rgba :r #x30 :g #x57 :b #x50 :a #x80) - (new 'static 'rgba :r #x27 :g #x4a :b #x39 :a #x80) - (new 'static 'rgba :r #x21 :g #x42 :b #x2f :a #x80) - (new 'static 'rgba :r #x1f :g #x41 :b #x28 :a #x80) - (new 'static 'rgba :r #x1c :g #x3f :b #x29 :a #x80) - (new 'static 'rgba :r #x1d :g #x3f :b #x26 :a #x80) - (new 'static 'rgba :r #x1d :g #x40 :b #x27 :a #x80) - (new 'static 'rgba :r #x1d :g #x40 :b #x29 :a #x80) - (new 'static 'rgba :r #x1f :g #x43 :b #x31 :a #x80) - (new 'static 'rgba :r #x23 :g #x48 :b #x36 :a #x80) - (new 'static 'rgba :r #x23 :g #x48 :b #x3c :a #x80) - (new 'static 'rgba :r #x23 :g #x49 :b #x3d :a #x80) - (new 'static 'rgba :r #x23 :g #x4a :b #x40 :a #x80) - (new 'static 'rgba :r #x28 :g #x4f :b #x48 :a #x80) - (new 'static 'rgba :r #x28 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x48 :b #x48 :a #x80) - (new 'static 'rgba :r #x19 :g #x42 :b #x44 :a #x80) - (new 'static 'rgba :r #x14 :g #x40 :b #x41 :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x3e :a #x80) - (new 'static 'rgba :r #xb :g #x3e :b #x3c :a #x80) - (new 'static 'rgba :r #xa :g #x3e :b #x3a :a #x80) - (new 'static 'rgba :r #x8 :g #x3c :b #x3a :a #x80) - (new 'static 'rgba :r #x6 :g #x3a :b #x39 :a #x80) - (new 'static 'rgba :r #x6 :g #x38 :b #x38 :a #x80) - (new 'static 'rgba :r #x5 :g #x34 :b #x37 :a #x80) - (new 'static 'rgba :r #x5 :g #x37 :b #x37 :a #x80) - (new 'static 'rgba :r #x6 :g #x39 :b #x37 :a #x80) - (new 'static 'rgba :r #x7 :g #x3c :b #x3a :a #x80) - (new 'static 'rgba :r #xd :g #x3f :b #x3c :a #x80) - (new 'static 'rgba :r #x15 :g #x41 :b #x41 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x44 :a #x80) - (new 'static 'rgba :r #x22 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x2a :g #x51 :b #x4c :a #x80) - (new 'static 'rgba :r #x2e :g #x54 :b #x51 :a #x80) - (new 'static 'rgba :r #x2e :g #x55 :b #x54 :a #x80) - (new 'static 'rgba :r #x2c :g #x54 :b #x54 :a #x80) - (new 'static 'rgba :r #x2a :g #x55 :b #x55 :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x53 :a #x80) - (new 'static 'rgba :r #x21 :g #x53 :b #x50 :a #x80) - (new 'static 'rgba :r #x1f :g #x52 :b #x52 :a #x80) - (new 'static 'rgba :r #x21 :g #x47 :b #x4d :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x3a :b #x44 :a #x80) - (new 'static 'rgba :r #x27 :g #x49 :b #x4e :a #x80) - (new 'static 'rgba :r #x2e :g #x55 :b #x50 :a #x80) - (new 'static 'rgba :r #x26 :g #x4a :b #x3b :a #x80) - (new 'static 'rgba :r #x22 :g #x47 :b #x32 :a #x80) - (new 'static 'rgba :r #x20 :g #x43 :b #x2c :a #x80) - (new 'static 'rgba :r #x1f :g #x42 :b #x2c :a #x80) - (new 'static 'rgba :r #x20 :g #x44 :b #x2d :a #x80) - (new 'static 'rgba :r #x20 :g #x44 :b #x30 :a #x80) - (new 'static 'rgba :r #x22 :g #x46 :b #x34 :a #x80) - (new 'static 'rgba :r #x26 :g #x49 :b #x3d :a #x80) - (new 'static 'rgba :r #x29 :g #x4f :b #x45 :a #x80) - (new 'static 'rgba :r #x28 :g #x4f :b #x45 :a #x80) - (new 'static 'rgba :r #x26 :g #x4d :b #x46 :a #x80) - (new 'static 'rgba :r #x25 :g #x4e :b #x45 :a #x80) - (new 'static 'rgba :r #x27 :g #x4f :b #x49 :a #x80) - (new 'static 'rgba :r #x27 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x17 :g #x40 :b #x41 :a #x80) - (new 'static 'rgba :r #x26 :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x20 :g #x48 :b #x49 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x41 :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x41 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x3c :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x3f :a #x80) - (new 'static 'rgba :r #xb :g #x3e :b #x3a :a #x80) - (new 'static 'rgba :r #x8 :g #x3d :b #x38 :a #x80) - (new 'static 'rgba :r #x7 :g #x3b :b #x39 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x3e :a #x80) - (new 'static 'rgba :r #x6 :g #x3a :b #x3a :a #x80) - (new 'static 'rgba :r #x8 :g #x3c :b #x39 :a #x80) - (new 'static 'rgba :r #xb :g #x3d :b #x3d :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x3c :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x43 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x43 :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x26 :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x4f :a #x80) - (new 'static 'rgba :r #x29 :g #x53 :b #x50 :a #x80) - (new 'static 'rgba :r #x29 :g #x53 :b #x51 :a #x80) - (new 'static 'rgba :r #x27 :g #x53 :b #x51 :a #x80) - (new 'static 'rgba :r #x24 :g #x53 :b #x53 :a #x80) - (new 'static 'rgba :r #x1f :g #x53 :b #x4e :a #x80) - (new 'static 'rgba :r #x1f :g #x4e :b #x51 :a #x80) - (new 'static 'rgba :r #x22 :g #x46 :b #x4d :a #x80) - (new 'static 'rgba :r #x22 :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #x21 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x37 :b #x43 :a #x80) - (new 'static 'rgba :r #x25 :g #x49 :b #x4d :a #x80) - (new 'static 'rgba :r #x2d :g #x53 :b #x4d :a #x80) - (new 'static 'rgba :r #x28 :g #x4d :b #x40 :a #x80) - (new 'static 'rgba :r #x26 :g #x4a :b #x39 :a #x80) - (new 'static 'rgba :r #x25 :g #x48 :b #x37 :a #x80) - (new 'static 'rgba :r #x24 :g #x47 :b #x35 :a #x80) - (new 'static 'rgba :r #x24 :g #x47 :b #x35 :a #x80) - (new 'static 'rgba :r #x26 :g #x49 :b #x3b :a #x80) - (new 'static 'rgba :r #x27 :g #x4c :b #x3d :a #x80) - (new 'static 'rgba :r #x29 :g #x4e :b #x46 :a #x80) - (new 'static 'rgba :r #x2c :g #x52 :b #x4b :a #x80) - (new 'static 'rgba :r #x2c :g #x54 :b #x4c :a #x80) - (new 'static 'rgba :r #x2b :g #x53 :b #x4b :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x29 :g #x50 :b #x4b :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x22 :g #x4a :b #x49 :a #x80) - (new 'static 'rgba :r #x2b :g #x51 :b #x4e :a #x80) - (new 'static 'rgba :r #x2a :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x48 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x45 :a #x80) - (new 'static 'rgba :r #x15 :g #x41 :b #x3e :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x3e :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x3f :a #x80) - (new 'static 'rgba :r #xd :g #x3f :b #x3a :a #x80) - (new 'static 'rgba :r #xc :g #x3f :b #x3a :a #x80) - (new 'static 'rgba :r #xb :g #x3e :b #x3c :a #x80) - (new 'static 'rgba :r #xc :g #x3e :b #x3c :a #x80) - (new 'static 'rgba :r #xd :g #x3f :b #x3c :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x3e :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x41 :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x22 :g #x4a :b #x46 :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x26 :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x26 :g #x51 :b #x4d :a #x80) - (new 'static 'rgba :r #x26 :g #x51 :b #x51 :a #x80) - (new 'static 'rgba :r #x23 :g #x51 :b #x51 :a #x80) - (new 'static 'rgba :r #x21 :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x1e :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x1f :g #x4f :b #x51 :a #x80) - (new 'static 'rgba :r #x23 :g #x44 :b #x4c :a #x80) - (new 'static 'rgba :r #x22 :g #x3b :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x37 :b #x42 :a #x80) - (new 'static 'rgba :r #x24 :g #x49 :b #x4d :a #x80) - (new 'static 'rgba :r #x2d :g #x56 :b #x50 :a #x80) - (new 'static 'rgba :r #x2d :g #x53 :b #x47 :a #x80) - (new 'static 'rgba :r #x2a :g #x50 :b #x42 :a #x80) - (new 'static 'rgba :r #x28 :g #x4d :b #x40 :a #x80) - (new 'static 'rgba :r #x27 :g #x4c :b #x3d :a #x80) - (new 'static 'rgba :r #x28 :g #x4e :b #x3e :a #x80) - (new 'static 'rgba :r #x29 :g #x4e :b #x42 :a #x80) - (new 'static 'rgba :r #x2b :g #x50 :b #x47 :a #x80) - (new 'static 'rgba :r #x2a :g #x4f :b #x49 :a #x80) - (new 'static 'rgba :r #x2c :g #x54 :b #x4c :a #x80) - (new 'static 'rgba :r #x29 :g #x4f :b #x47 :a #x80) - (new 'static 'rgba :r #x2a :g #x52 :b #x50 :a #x80) - (new 'static 'rgba :r #x29 :g #x50 :b #x4b :a #x80) - (new 'static 'rgba :r #x2c :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x2a :g #x51 :b #x4d :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x28 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x29 :g #x50 :b #x4b :a #x80) - (new 'static 'rgba :r #x27 :g #x4e :b #x4d :a #x80) - (new 'static 'rgba :r #x22 :g #x4a :b #x49 :a #x80) - (new 'static 'rgba :r #x19 :g #x43 :b #x43 :a #x80) - (new 'static 'rgba :r #x17 :g #x42 :b #x42 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x41 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x41 :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x41 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x41 :a #x80) - (new 'static 'rgba :r #x13 :g #x42 :b #x41 :a #x80) - (new 'static 'rgba :r #x14 :g #x40 :b #x41 :a #x80) - (new 'static 'rgba :r #x17 :g #x42 :b #x42 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x44 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x49 :a #x80) - (new 'static 'rgba :r #x23 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x23 :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x23 :g #x4d :b #x4d :a #x80) - (new 'static 'rgba :r #x22 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x1f :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x1c :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x1c :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x20 :g #x4a :b #x4f :a #x80) - (new 'static 'rgba :r #x23 :g #x40 :b #x4a :a #x80) - (new 'static 'rgba :r #x22 :g #x3a :b #x47 :a #x80) - (new 'static 'rgba :r #x22 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x39 :b #x43 :a #x80) - (new 'static 'rgba :r #x23 :g #x49 :b #x4d :a #x80) - (new 'static 'rgba :r #x2f :g #x59 :b #x53 :a #x80) - (new 'static 'rgba :r #x32 :g #x5a :b #x52 :a #x80) - (new 'static 'rgba :r #x2f :g #x56 :b #x4e :a #x80) - (new 'static 'rgba :r #x2d :g #x52 :b #x4c :a #x80) - (new 'static 'rgba :r #x2b :g #x51 :b #x46 :a #x80) - (new 'static 'rgba :r #x2b :g #x51 :b #x48 :a #x80) - (new 'static 'rgba :r #x2b :g #x52 :b #x4c :a #x80) - (new 'static 'rgba :r #x27 :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x28 :g #x4d :b #x44 :a #x80) - (new 'static 'rgba :r #x26 :g #x4d :b #x49 :a #x80) - (new 'static 'rgba :r #x29 :g #x52 :b #x4e :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x26 :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x2c :g #x53 :b #x50 :a #x80) - (new 'static 'rgba :r #x2b :g #x53 :b #x4d :a #x80) - (new 'static 'rgba :r #x26 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x29 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x2b :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x25 :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x46 :b #x47 :a #x80) - (new 'static 'rgba :r #x1d :g #x47 :b #x46 :a #x80) - (new 'static 'rgba :r #x1b :g #x45 :b #x44 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x1b :g #x44 :b #x45 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x43 :a #x80) - (new 'static 'rgba :r #x1b :g #x45 :b #x45 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x45 :a #x80) - (new 'static 'rgba :r #x1c :g #x46 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x4a :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x4a :a #x80) - (new 'static 'rgba :r #x1f :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x24 :g #x4f :b #x4e :a #x80) - (new 'static 'rgba :r #x1c :g #x4e :b #x4a :a #x80) - (new 'static 'rgba :r #x1a :g #x4e :b #x49 :a #x80) - (new 'static 'rgba :r #x1b :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x20 :g #x48 :b #x4c :a #x80) - (new 'static 'rgba :r #x23 :g #x3d :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x3a :b #x45 :a #x80) - (new 'static 'rgba :r #x24 :g #x45 :b #x4c :a #x80) - (new 'static 'rgba :r #x2e :g #x59 :b #x58 :a #x80) - (new 'static 'rgba :r #x33 :g #x5c :b #x59 :a #x80) - (new 'static 'rgba :r #x31 :g #x5a :b #x56 :a #x80) - (new 'static 'rgba :r #x30 :g #x58 :b #x53 :a #x80) - (new 'static 'rgba :r #x2c :g #x54 :b #x4e :a #x80) - (new 'static 'rgba :r #x24 :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x28 :g #x51 :b #x4e :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x27 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x25 :g #x4d :b #x4c :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x49 :b #x4a :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x47 :a #x80) - (new 'static 'rgba :r #x28 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x29 :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x23 :g #x4d :b #x48 :a #x80) - (new 'static 'rgba :r #x27 :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x26 :g #x4e :b #x4a :a #x80) - (new 'static 'rgba :r #x28 :g #x4e :b #x4d :a #x80) - (new 'static 'rgba :r #x27 :g #x4e :b #x4b :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x49 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x47 :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x48 :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x46 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x49 :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x45 :a #x80) - (new 'static 'rgba :r #x1d :g #x48 :b #x45 :a #x80) - (new 'static 'rgba :r #x1e :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x1b :g #x48 :b #x49 :a #x80) - (new 'static 'rgba :r #x1a :g #x4b :b #x47 :a #x80) - (new 'static 'rgba :r #x18 :g #x4d :b #x49 :a #x80) - (new 'static 'rgba :r #x18 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x41 :b #x4b :a #x80) - (new 'static 'rgba :r #x22 :g #x3c :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1b :g #x39 :b #x43 :a #x80) - (new 'static 'rgba :r #x23 :g #x44 :b #x4a :a #x80) - (new 'static 'rgba :r #x2d :g #x55 :b #x57 :a #x80) - (new 'static 'rgba :r #x32 :g #x5b :b #x5a :a #x80) - (new 'static 'rgba :r #x32 :g #x5b :b #x55 :a #x80) - (new 'static 'rgba :r #x30 :g #x57 :b #x55 :a #x80) - (new 'static 'rgba :r #x2d :g #x54 :b #x50 :a #x80) - (new 'static 'rgba :r #x2b :g #x53 :b #x50 :a #x80) - (new 'static 'rgba :r #x29 :g #x52 :b #x4f :a #x80) - (new 'static 'rgba :r #x28 :g #x51 :b #x4c :a #x80) - (new 'static 'rgba :r #x26 :g #x4e :b #x4d :a #x80) - (new 'static 'rgba :r #x21 :g #x4c :b #x47 :a #x80) - (new 'static 'rgba :r #x1e :g #x47 :b #x48 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x27 :g #x4e :b #x4d :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x20 :g #x47 :b #x48 :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x46 :a #x80) - (new 'static 'rgba :r #x26 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x1c :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x24 :g #x4d :b #x49 :a #x80) - (new 'static 'rgba :r #x26 :g #x4d :b #x49 :a #x80) - (new 'static 'rgba :r #x26 :g #x4f :b #x4b :a #x80) - (new 'static 'rgba :r #x25 :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x1d :g #x47 :b #x48 :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x22 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x1a :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x47 :a #x80) - (new 'static 'rgba :r #x1d :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x17 :g #x4a :b #x46 :a #x80) - (new 'static 'rgba :r #x16 :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x17 :g #x4a :b #x4a :a #x80) - (new 'static 'rgba :r #x1c :g #x45 :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x40 :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x26 :g #x52 :b #x54 :a #x80) - (new 'static 'rgba :r #x21 :g #x38 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x3a :b #x44 :a #x80) - (new 'static 'rgba :r #x22 :g #x45 :b #x4b :a #x80) - (new 'static 'rgba :r #x2e :g #x56 :b #x54 :a #x80) - (new 'static 'rgba :r #x34 :g #x5d :b #x5a :a #x80) - (new 'static 'rgba :r #x32 :g #x5a :b #x55 :a #x80) - (new 'static 'rgba :r #x2f :g #x56 :b #x52 :a #x80) - (new 'static 'rgba :r #x2b :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x29 :g #x50 :b #x4f :a #x80) - (new 'static 'rgba :r #x24 :g #x4d :b #x49 :a #x80) - (new 'static 'rgba :r #x1b :g #x48 :b #x44 :a #x80) - (new 'static 'rgba :r #x23 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x1e :g #x45 :b #x46 :a #x80) - (new 'static 'rgba :r #x1e :g #x47 :b #x44 :a #x80) - (new 'static 'rgba :r #x1a :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x42 :a #x80) - (new 'static 'rgba :r #x1b :g #x44 :b #x45 :a #x80) - (new 'static 'rgba :r #x1c :g #x46 :b #x46 :a #x80) - (new 'static 'rgba :r #x1e :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x48 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x49 :a #x80) - (new 'static 'rgba :r #x1e :g #x46 :b #x47 :a #x80) - (new 'static 'rgba :r #x1e :g #x47 :b #x44 :a #x80) - (new 'static 'rgba :r #x24 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x27 :g #x4f :b #x4e :a #x80) - (new 'static 'rgba :r #x2b :g #x51 :b #x50 :a #x80) - (new 'static 'rgba :r #x2b :g #x51 :b #x50 :a #x80) - (new 'static 'rgba :r #x2b :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x29 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x1d :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x18 :g #x43 :b #x44 :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x43 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x44 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x46 :a #x80) - (new 'static 'rgba :r #x15 :g #x48 :b #x44 :a #x80) - (new 'static 'rgba :r #x14 :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x17 :g #x49 :b #x4b :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x3f :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x22 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1e :g #x3c :b #x46 :a #x80) - (new 'static 'rgba :r #x26 :g #x4a :b #x4f :a #x80) - (new 'static 'rgba :r #x30 :g #x59 :b #x58 :a #x80) - (new 'static 'rgba :r #x35 :g #x5c :b #x58 :a #x80) - (new 'static 'rgba :r #x31 :g #x59 :b #x56 :a #x80) - (new 'static 'rgba :r #x2f :g #x55 :b #x51 :a #x80) - (new 'static 'rgba :r #x32 :g #x56 :b #x52 :a #x80) - (new 'static 'rgba :r #x2b :g #x51 :b #x4d :a #x80) - (new 'static 'rgba :r #x28 :g #x4f :b #x4b :a #x80) - (new 'static 'rgba :r #x23 :g #x4c :b #x4b :a #x80) - (new 'static 'rgba :r #x22 :g #x48 :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x40 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x41 :a #x80) - (new 'static 'rgba :r #x15 :g #x41 :b #x41 :a #x80) - (new 'static 'rgba :r #x1d :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x16 :g #x42 :b #x42 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x42 :a #x80) - (new 'static 'rgba :r #x19 :g #x44 :b #x44 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x1d :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x26 :g #x4e :b #x4e :a #x80) - (new 'static 'rgba :r #x29 :g #x51 :b #x4e :a #x80) - (new 'static 'rgba :r #x27 :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x26 :g #x4d :b #x4e :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x1f :g #x47 :b #x48 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x42 :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x46 :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x47 :a #x80) - (new 'static 'rgba :r #x15 :g #x48 :b #x44 :a #x80) - (new 'static 'rgba :r #x14 :g #x48 :b #x47 :a #x80) - (new 'static 'rgba :r #x15 :g #x48 :b #x48 :a #x80) - (new 'static 'rgba :r #x1a :g #x46 :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x43 :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x3b :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x23 :g #x46 :b #x4a :a #x80) - (new 'static 'rgba :r #x2f :g #x56 :b #x58 :a #x80) - (new 'static 'rgba :r #x34 :g #x5d :b #x5b :a #x80) - (new 'static 'rgba :r #x33 :g #x5b :b #x56 :a #x80) - (new 'static 'rgba :r #x31 :g #x58 :b #x57 :a #x80) - (new 'static 'rgba :r #x31 :g #x57 :b #x53 :a #x80) - (new 'static 'rgba :r #x33 :g #x58 :b #x55 :a #x80) - (new 'static 'rgba :r #x28 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x1e :g #x47 :b #x46 :a #x80) - (new 'static 'rgba :r #x1c :g #x46 :b #x46 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x44 :a #x80) - (new 'static 'rgba :r #x13 :g #x42 :b #x42 :a #x80) - (new 'static 'rgba :r #x12 :g #x43 :b #x41 :a #x80) - (new 'static 'rgba :r #x12 :g #x43 :b #x41 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x40 :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x3f :a #x80) - (new 'static 'rgba :r #x15 :g #x44 :b #x43 :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x13 :g #x42 :b #x3e :a #x80) - (new 'static 'rgba :r #x15 :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x19 :g #x43 :b #x44 :a #x80) - (new 'static 'rgba :r #x1b :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x1c :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x1d :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x26 :g #x4e :b #x4b :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x24 :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x4b :a #x80) - (new 'static 'rgba :r #x28 :g #x4e :b #x4f :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x1f :g #x48 :b #x48 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x45 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x43 :a #x80) - (new 'static 'rgba :r #x1b :g #x45 :b #x46 :a #x80) - (new 'static 'rgba :r #x18 :g #x47 :b #x46 :a #x80) - (new 'static 'rgba :r #x18 :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x15 :g #x48 :b #x43 :a #x80) - (new 'static 'rgba :r #x15 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x18 :g #x49 :b #x4a :a #x80) - (new 'static 'rgba :r #x1d :g #x43 :b #x4b :a #x80) - (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x21 :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x27 :g #x48 :b #x4e :a #x80) - (new 'static 'rgba :r #x38 :g #x60 :b #x5e :a #x80) - (new 'static 'rgba :r #x38 :g #x60 :b #x5c :a #x80) - (new 'static 'rgba :r #x36 :g #x5d :b #x5a :a #x80) - (new 'static 'rgba :r #x30 :g #x57 :b #x55 :a #x80) - (new 'static 'rgba :r #x32 :g #x58 :b #x54 :a #x80) - (new 'static 'rgba :r #x24 :g #x4e :b #x4b :a #x80) - (new 'static 'rgba :r #x26 :g #x4e :b #x4e :a #x80) - (new 'static 'rgba :r #x22 :g #x4a :b #x4b :a #x80) - (new 'static 'rgba :r #x1d :g #x48 :b #x47 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x44 :a #x80) - (new 'static 'rgba :r #x15 :g #x43 :b #x43 :a #x80) - (new 'static 'rgba :r #x17 :g #x46 :b #x45 :a #x80) - (new 'static 'rgba :r #xe :g #x41 :b #x40 :a #x80) - (new 'static 'rgba :r #xe :g #x41 :b #x3d :a #x80) - (new 'static 'rgba :r #xd :g #x40 :b #x3f :a #x80) - (new 'static 'rgba :r #xc :g #x41 :b #x3f :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x40 :a #x80) - (new 'static 'rgba :r #xf :g #x41 :b #x40 :a #x80) - (new 'static 'rgba :r #xf :g #x41 :b #x3f :a #x80) - (new 'static 'rgba :r #xf :g #x41 :b #x3d :a #x80) - (new 'static 'rgba :r #x10 :g #x41 :b #x40 :a #x80) - (new 'static 'rgba :r #x13 :g #x43 :b #x3f :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x43 :a #x80) - (new 'static 'rgba :r #x1a :g #x43 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x1f :g #x48 :b #x45 :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x4b :a #x80) - (new 'static 'rgba :r #x23 :g #x4a :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x1d :g #x48 :b #x44 :a #x80) - (new 'static 'rgba :r #x1d :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x1b :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x1a :g #x4a :b #x46 :a #x80) - (new 'static 'rgba :r #x18 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x19 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x1c :g #x49 :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x42 :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x29 :g #x4a :b #x4f :a #x80) - (new 'static 'rgba :r #x38 :g #x61 :b #x5c :a #x80) - (new 'static 'rgba :r #x38 :g #x5f :b #x5a :a #x80) - (new 'static 'rgba :r #x35 :g #x5d :b #x5a :a #x80) - (new 'static 'rgba :r #x26 :g #x52 :b #x4e :a #x80) - (new 'static 'rgba :r #x2d :g #x55 :b #x51 :a #x80) - (new 'static 'rgba :r #x28 :g #x51 :b #x50 :a #x80) - (new 'static 'rgba :r #x23 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x43 :a #x80) - (new 'static 'rgba :r #x12 :g #x44 :b #x42 :a #x80) - (new 'static 'rgba :r #xf :g #x42 :b #x42 :a #x80) - (new 'static 'rgba :r #xc :g #x41 :b #x3f :a #x80) - (new 'static 'rgba :r #xd :g #x40 :b #x3e :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x3f :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x3e :a #x80) - (new 'static 'rgba :r #xc :g #x3e :b #x3d :a #x80) - (new 'static 'rgba :r #x1e :g #x4a :b #x45 :a #x80) - (new 'static 'rgba :r #xc :g #x3f :b #x40 :a #x80) - (new 'static 'rgba :r #xd :g #x41 :b #x3e :a #x80) - (new 'static 'rgba :r #xf :g #x41 :b #x40 :a #x80) - (new 'static 'rgba :r #xe :g #x41 :b #x40 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x42 :a #x80) - (new 'static 'rgba :r #x15 :g #x43 :b #x43 :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x46 :b #x45 :a #x80) - (new 'static 'rgba :r #x1d :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x48 :b #x49 :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x4b :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x4b :a #x80) - (new 'static 'rgba :r #x22 :g #x49 :b #x4a :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x22 :g #x4a :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x4b :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x4a :b #x49 :a #x80) - (new 'static 'rgba :r #x1f :g #x4d :b #x4c :a #x80) - (new 'static 'rgba :r #x1e :g #x4f :b #x4b :a #x80) - (new 'static 'rgba :r #x1d :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x1c :g #x4c :b #x4e :a #x80) - (new 'static 'rgba :r #x1e :g #x46 :b #x4b :a #x80) - (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x25 :g #x49 :b #x4e :a #x80) - (new 'static 'rgba :r #x2f :g #x5c :b #x5a :a #x80) - (new 'static 'rgba :r #x32 :g #x5b :b #x5a :a #x80) - (new 'static 'rgba :r #x33 :g #x5b :b #x5a :a #x80) - (new 'static 'rgba :r #x30 :g #x58 :b #x56 :a #x80) - (new 'static 'rgba :r #x29 :g #x52 :b #x4f :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x4c :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x19 :g #x49 :b #x46 :a #x80) - (new 'static 'rgba :r #x15 :g #x46 :b #x45 :a #x80) - (new 'static 'rgba :r #x11 :g #x46 :b #x41 :a #x80) - (new 'static 'rgba :r #xe :g #x42 :b #x41 :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x40 :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x41 :a #x80) - (new 'static 'rgba :r #x11 :g #x38 :b #x3f :a #x80) - (new 'static 'rgba :r #x11 :g #x39 :b #x3e :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x3e :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x40 :a #x80) - (new 'static 'rgba :r #xf :g #x41 :b #x3f :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x41 :a #x80) - (new 'static 'rgba :r #xe :g #x42 :b #x3f :a #x80) - (new 'static 'rgba :r #xf :g #x43 :b #x3f :a #x80) - (new 'static 'rgba :r #x11 :g #x44 :b #x3f :a #x80) - (new 'static 'rgba :r #x14 :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x16 :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x46 :a #x80) - (new 'static 'rgba :r #x1e :g #x46 :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x24 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x1f :g #x48 :b #x47 :a #x80) - (new 'static 'rgba :r #x23 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x23 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x23 :g #x4e :b #x4e :a #x80) - (new 'static 'rgba :r #x24 :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x25 :g #x50 :b #x51 :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x4f :a #x80) - (new 'static 'rgba :r #x1e :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x4d :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x22 :g #x46 :b #x4c :a #x80) - (new 'static 'rgba :r #x28 :g #x59 :b #x57 :a #x80) - (new 'static 'rgba :r #x29 :g #x58 :b #x54 :a #x80) - (new 'static 'rgba :r #x29 :g #x56 :b #x53 :a #x80) - (new 'static 'rgba :r #x27 :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x21 :g #x4e :b #x4e :a #x80) - (new 'static 'rgba :r #x1a :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x18 :g #x49 :b #x46 :a #x80) - (new 'static 'rgba :r #x15 :g #x48 :b #x47 :a #x80) - (new 'static 'rgba :r #x12 :g #x46 :b #x42 :a #x80) - (new 'static 'rgba :r #x11 :g #x44 :b #x44 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x41 :a #x80) - (new 'static 'rgba :r #x13 :g #x38 :b #x40 :a #x80) - (new 'static 'rgba :r #x16 :g #x37 :b #x40 :a #x80) - (new 'static 'rgba :r #x16 :g #x36 :b #x3f :a #x80) - (new 'static 'rgba :r #x16 :g #x34 :b #x3e :a #x80) - (new 'static 'rgba :r #x16 :g #x39 :b #x3f :a #x80) - (new 'static 'rgba :r #x14 :g #x3a :b #x40 :a #x80) - (new 'static 'rgba :r #x13 :g #x3d :b #x41 :a #x80) - (new 'static 'rgba :r #x11 :g #x3f :b #x42 :a #x80) - (new 'static 'rgba :r #xf :g #x41 :b #x41 :a #x80) - (new 'static 'rgba :r #x10 :g #x42 :b #x43 :a #x80) - (new 'static 'rgba :r #x10 :g #x45 :b #x40 :a #x80) - (new 'static 'rgba :r #x24 :g #x4f :b #x48 :a #x80) - (new 'static 'rgba :r #x15 :g #x47 :b #x43 :a #x80) - (new 'static 'rgba :r #x19 :g #x48 :b #x45 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x4a :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x25 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x25 :g #x4d :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x4d :a #x80) - (new 'static 'rgba :r #x25 :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x25 :g #x4e :b #x4e :a #x80) - (new 'static 'rgba :r #x27 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x27 :g #x51 :b #x4d :a #x80) - (new 'static 'rgba :r #x28 :g #x52 :b #x4f :a #x80) - (new 'static 'rgba :r #x2a :g #x54 :b #x50 :a #x80) - (new 'static 'rgba :r #x2a :g #x54 :b #x54 :a #x80) - (new 'static 'rgba :r #x29 :g #x54 :b #x54 :a #x80) - (new 'static 'rgba :r #x22 :g #x54 :b #x53 :a #x80) - (new 'static 'rgba :r #x1f :g #x4c :b #x4f :a #x80) - (new 'static 'rgba :r #x21 :g #x3c :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x21 :g #x47 :b #x4b :a #x80) - (new 'static 'rgba :r #x25 :g #x55 :b #x54 :a #x80) - (new 'static 'rgba :r #x22 :g #x54 :b #x51 :a #x80) - (new 'static 'rgba :r #x21 :g #x51 :b #x51 :a #x80) - (new 'static 'rgba :r #x1e :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x19 :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x17 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x14 :g #x46 :b #x46 :a #x80) - (new 'static 'rgba :r #x14 :g #x46 :b #x43 :a #x80) - (new 'static 'rgba :r #x13 :g #x45 :b #x46 :a #x80) - (new 'static 'rgba :r #x15 :g #x3f :b #x43 :a #x80) - (new 'static 'rgba :r #x17 :g #x3c :b #x41 :a #x80) - (new 'static 'rgba :r #x19 :g #x36 :b #x41 :a #x80) - (new 'static 'rgba :r #x19 :g #x33 :b #x40 :a #x80) - (new 'static 'rgba :r #x18 :g #x32 :b #x40 :a #x80) - (new 'static 'rgba :r #x19 :g #x33 :b #x40 :a #x80) - (new 'static 'rgba :r #x19 :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x1a :g #x3a :b #x43 :a #x80) - (new 'static 'rgba :r #x19 :g #x3a :b #x42 :a #x80) - (new 'static 'rgba :r #x16 :g #x3f :b #x43 :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x44 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x45 :a #x80) - (new 'static 'rgba :r #x12 :g #x46 :b #x45 :a #x80) - (new 'static 'rgba :r #x14 :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x15 :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x19 :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x4a :b #x4a :a #x80) - (new 'static 'rgba :r #x23 :g #x4c :b #x4d :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x4e :a #x80) - (new 'static 'rgba :r #x25 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x23 :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x4a :a #x80) - (new 'static 'rgba :r #x26 :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x28 :g #x4f :b #x50 :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x26 :g #x4e :b #x4f :a #x80) - (new 'static 'rgba :r #x2c :g #x54 :b #x52 :a #x80) - (new 'static 'rgba :r #x2b :g #x55 :b #x51 :a #x80) - (new 'static 'rgba :r #x2d :g #x57 :b #x55 :a #x80) - (new 'static 'rgba :r #x2d :g #x59 :b #x57 :a #x80) - (new 'static 'rgba :r #x2b :g #x57 :b #x54 :a #x80) - (new 'static 'rgba :r #x24 :g #x55 :b #x52 :a #x80) - (new 'static 'rgba :r #x20 :g #x4d :b #x50 :a #x80) - (new 'static 'rgba :r #x21 :g #x3e :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1e :g #x3f :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x50 :a #x80) - (new 'static 'rgba :r #x20 :g #x53 :b #x51 :a #x80) - (new 'static 'rgba :r #x1e :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x1b :g #x4f :b #x4a :a #x80) - (new 'static 'rgba :r #x18 :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x16 :g #x47 :b #x48 :a #x80) - (new 'static 'rgba :r #x14 :g #x44 :b #x45 :a #x80) - (new 'static 'rgba :r #x15 :g #x44 :b #x47 :a #x80) - (new 'static 'rgba :r #x17 :g #x41 :b #x45 :a #x80) - (new 'static 'rgba :r #x1a :g #x3b :b #x44 :a #x80) - (new 'static 'rgba :r #x1c :g #x44 :b #x48 :a #x80) - (new 'static 'rgba :r #x1d :g #x46 :b #x4a :a #x80) - (new 'static 'rgba :r #x1b :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1b :g #x31 :b #x40 :a #x80) - (new 'static 'rgba :r #x1b :g #x36 :b #x41 :a #x80) - (new 'static 'rgba :r #x1c :g #x37 :b #x43 :a #x80) - (new 'static 'rgba :r #x1c :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #x1c :g #x3a :b #x45 :a #x80) - (new 'static 'rgba :r #x1b :g #x3e :b #x45 :a #x80) - (new 'static 'rgba :r #x19 :g #x3f :b #x45 :a #x80) - (new 'static 'rgba :r #x17 :g #x40 :b #x46 :a #x80) - (new 'static 'rgba :r #x15 :g #x46 :b #x48 :a #x80) - (new 'static 'rgba :r #x14 :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x17 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x1a :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x1e :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x23 :g #x4d :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x26 :g #x50 :b #x4f :a #x80) - (new 'static 'rgba :r #x24 :g #x4e :b #x4f :a #x80) - (new 'static 'rgba :r #x27 :g #x51 :b #x50 :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x51 :a #x80) - (new 'static 'rgba :r #x29 :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x29 :g #x52 :b #x52 :a #x80) - (new 'static 'rgba :r #x2d :g #x56 :b #x53 :a #x80) - (new 'static 'rgba :r #x2b :g #x55 :b #x55 :a #x80) - (new 'static 'rgba :r #x2c :g #x55 :b #x52 :a #x80) - (new 'static 'rgba :r #x30 :g #x59 :b #x58 :a #x80) - (new 'static 'rgba :r #x2f :g #x58 :b #x59 :a #x80) - (new 'static 'rgba :r #x2a :g #x57 :b #x57 :a #x80) - (new 'static 'rgba :r #x23 :g #x56 :b #x51 :a #x80) - (new 'static 'rgba :r #x21 :g #x4e :b #x51 :a #x80) - (new 'static 'rgba :r #x23 :g #x3f :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x39 :b #x41 :a #x80) - (new 'static 'rgba :r #x1e :g #x3e :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x46 :b #x4c :a #x80) - (new 'static 'rgba :r #x1c :g #x4e :b #x4d :a #x80) - (new 'static 'rgba :r #x1b :g #x4e :b #x4a :a #x80) - (new 'static 'rgba :r #x19 :g #x49 :b #x4b :a #x80) - (new 'static 'rgba :r #x17 :g #x46 :b #x47 :a #x80) - (new 'static 'rgba :r #x18 :g #x43 :b #x47 :a #x80) - (new 'static 'rgba :r #x1a :g #x42 :b #x48 :a #x80) - (new 'static 'rgba :r #x1c :g #x3f :b #x46 :a #x80) - (new 'static 'rgba :r #x1c :g #x3a :b #x44 :a #x80) - (new 'static 'rgba :r #x1d :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x1d :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1e :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1e :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1e :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x1e :g #x3c :b #x46 :a #x80) - (new 'static 'rgba :r #x1e :g #x3e :b #x47 :a #x80) - (new 'static 'rgba :r #x1b :g #x42 :b #x49 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x4a :a #x80) - (new 'static 'rgba :r #x18 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x18 :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x1b :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x1e :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x20 :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x21 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x27 :g #x52 :b #x52 :a #x80) - (new 'static 'rgba :r #x26 :g #x52 :b #x50 :a #x80) - (new 'static 'rgba :r #x26 :g #x52 :b #x52 :a #x80) - (new 'static 'rgba :r #x28 :g #x53 :b #x53 :a #x80) - (new 'static 'rgba :r #x29 :g #x55 :b #x50 :a #x80) - (new 'static 'rgba :r #x2b :g #x56 :b #x52 :a #x80) - (new 'static 'rgba :r #x2c :g #x58 :b #x56 :a #x80) - (new 'static 'rgba :r #x2c :g #x58 :b #x55 :a #x80) - (new 'static 'rgba :r #x2e :g #x58 :b #x58 :a #x80) - (new 'static 'rgba :r #x2c :g #x59 :b #x59 :a #x80) - (new 'static 'rgba :r #x26 :g #x58 :b #x52 :a #x80) - (new 'static 'rgba :r #x22 :g #x56 :b #x52 :a #x80) - (new 'static 'rgba :r #x22 :g #x4c :b #x4f :a #x80) - (new 'static 'rgba :r #x22 :g #x3c :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1a :g #x36 :b #x40 :a #x80) - (new 'static 'rgba :r #x1a :g #x36 :b #x40 :a #x80) - (new 'static 'rgba :r #x1c :g #x3a :b #x44 :a #x80) - (new 'static 'rgba :r #x1d :g #x44 :b #x49 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x4b :a #x80) - (new 'static 'rgba :r #x1c :g #x45 :b #x48 :a #x80) - (new 'static 'rgba :r #x1c :g #x42 :b #x47 :a #x80) - (new 'static 'rgba :r #x1d :g #x40 :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x1e :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x1e :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x21 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x3a :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x3f :b #x49 :a #x80) - (new 'static 'rgba :r #x1e :g #x43 :b #x4a :a #x80) - (new 'static 'rgba :r #x1d :g #x48 :b #x4d :a #x80) - (new 'static 'rgba :r #x1c :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x1b :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x1c :g #x50 :b #x4f :a #x80) - (new 'static 'rgba :r #x1e :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x1f :g #x52 :b #x4f :a #x80) - (new 'static 'rgba :r #x20 :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x21 :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x23 :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x23 :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x23 :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x24 :g #x53 :b #x51 :a #x80) - (new 'static 'rgba :r #x24 :g #x53 :b #x51 :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x50 :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x51 :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x53 :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x55 :a #x80) - (new 'static 'rgba :r #x28 :g #x56 :b #x56 :a #x80) - (new 'static 'rgba :r #x26 :g #x57 :b #x54 :a #x80) - (new 'static 'rgba :r #x22 :g #x54 :b #x55 :a #x80) - (new 'static 'rgba :r #x23 :g #x4f :b #x53 :a #x80) - (new 'static 'rgba :r #x24 :g #x41 :b #x4c :a #x80) - (new 'static 'rgba :r #x21 :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x22 :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x37 :b #x41 :a #x80) - (new 'static 'rgba :r #x1b :g #x35 :b #x41 :a #x80) - (new 'static 'rgba :r #x1b :g #x36 :b #x41 :a #x80) - (new 'static 'rgba :r #x1d :g #x3b :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x3d :b #x46 :a #x80) - (new 'static 'rgba :r #x1e :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x1e :g #x3c :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x3e :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x22 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x22 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x22 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3e :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x42 :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x45 :b #x4c :a #x80) - (new 'static 'rgba :r #x20 :g #x48 :b #x4c :a #x80) - (new 'static 'rgba :r #x1f :g #x4a :b #x4f :a #x80) - (new 'static 'rgba :r #x1e :g #x4e :b #x51 :a #x80) - (new 'static 'rgba :r #x1f :g #x50 :b #x4f :a #x80) - (new 'static 'rgba :r #x1f :g #x51 :b #x51 :a #x80) - (new 'static 'rgba :r #x1f :g #x53 :b #x52 :a #x80) - (new 'static 'rgba :r #x20 :g #x52 :b #x52 :a #x80) - (new 'static 'rgba :r #x21 :g #x54 :b #x52 :a #x80) - (new 'static 'rgba :r #x21 :g #x52 :b #x52 :a #x80) - (new 'static 'rgba :r #x20 :g #x54 :b #x52 :a #x80) - (new 'static 'rgba :r #x21 :g #x54 :b #x50 :a #x80) - (new 'static 'rgba :r #x21 :g #x54 :b #x4f :a #x80) - (new 'static 'rgba :r #x21 :g #x54 :b #x53 :a #x80) - (new 'static 'rgba :r #x21 :g #x54 :b #x50 :a #x80) - (new 'static 'rgba :r #x20 :g #x54 :b #x51 :a #x80) - (new 'static 'rgba :r #x21 :g #x52 :b #x53 :a #x80) - (new 'static 'rgba :r #x22 :g #x51 :b #x54 :a #x80) - (new 'static 'rgba :r #x22 :g #x4f :b #x53 :a #x80) - (new 'static 'rgba :r #x23 :g #x4d :b #x51 :a #x80) - (new 'static 'rgba :r #x26 :g #x43 :b #x4d :a #x80) - (new 'static 'rgba :r #x23 :g #x3d :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x38 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1d :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x1c :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x37 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x37 :b #x42 :a #x80) - (new 'static 'rgba :r #x1d :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #x21 :g #x40 :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x42 :b #x4a :a #x80) - (new 'static 'rgba :r #x22 :g #x43 :b #x4b :a #x80) - (new 'static 'rgba :r #x22 :g #x45 :b #x4c :a #x80) - (new 'static 'rgba :r #x21 :g #x46 :b #x4d :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x4f :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x4f :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x4e :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x4e :a #x80) - (new 'static 'rgba :r #x21 :g #x47 :b #x4e :a #x80) - (new 'static 'rgba :r #x21 :g #x48 :b #x4e :a #x80) - (new 'static 'rgba :r #x21 :g #x48 :b #x4e :a #x80) - (new 'static 'rgba :r #x21 :g #x49 :b #x4f :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x4e :a #x80) - (new 'static 'rgba :r #x20 :g #x47 :b #x4e :a #x80) - (new 'static 'rgba :r #x20 :g #x46 :b #x4d :a #x80) - (new 'static 'rgba :r #x20 :g #x46 :b #x4c :a #x80) - (new 'static 'rgba :r #x21 :g #x45 :b #x4c :a #x80) - (new 'static 'rgba :r #x23 :g #x41 :b #x4b :a #x80) - (new 'static 'rgba :r #x22 :g #x40 :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1d :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x1d :g #x38 :b #x43 :a #x80) - (new 'static 'rgba :r #x1d :g #x37 :b #x42 :a #x80) - (new 'static 'rgba :r #x1d :g #x38 :b #x42 :a #x80) - (new 'static 'rgba :r #x1d :g #x39 :b #x43 :a #x80) - (new 'static 'rgba :r #x1e :g #x3b :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x3e :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #x21 :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x3c :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x3c :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x21 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1e :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #x1d :g #x39 :b #x43 :a #x80) - (new 'static 'rgba :r #x1e :g #x38 :b #x43 :a #x80) - (new 'static 'rgba :r #x1e :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x37 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x31 :b #x41 :a #x80) - (new 'static 'rgba :r #x1e :g #x32 :b #x40 :a #x80) - (new 'static 'rgba :r #x1e :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - ) - ) - ) -(define *ocean-near-indices-village2* (new 'static 'ocean-near-indices :data #x4d50)) -(define *ocean-trans-indices-village2* (new 'static 'ocean-trans-indices - :data (new 'static 'array uint32 2304 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x10001 - #x10001 - #x10001 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x10001 - #x10001 - #x10001 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x10001 - #x10001 - #x10001 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x10001 - #x10001 - #x20055 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x10001 - #x30056 - #x40057 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x10001 - #x30056 - #x50007 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x10001 - #x30056 - #x60000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x70058 - #x80000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x90059 - #xa001d - #xb0000 - #xc0006 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xd0051 - #xe005a - #xf005b - #x100000 - #x110000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x12005c - #x130000 - #x14005d - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x15005e - #x16005f - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #xffffffff - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - ) - ) +(define *ocean-colors-village1* + (new 'static 'ocean-colors + :colors + (new 'static 'array rgba 2548 + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2b :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2b :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3b :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x3f :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3f :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x3 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x43 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x8 :g #x34 :b #x45 :a #x80) + (new 'static 'rgba :r #x8 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x40 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x47 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x47 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x47 :a #x80) + (new 'static 'rgba :r #x9 :g #x35 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #x9 :g #x35 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x47 :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x49 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x4b :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x4b :a #x80) + (new 'static 'rgba :r #xc :g #x39 :b #x4b :a #x80) + (new 'static 'rgba :r #xc :g #x39 :b #x4a :a #x80) + (new 'static 'rgba :r #xb :g #x37 :b #x48 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #xc :g #x37 :b #x48 :a #x80) + (new 'static 'rgba :r #xc :g #x38 :b #x49 :a #x80) + (new 'static 'rgba :r #xc :g #x39 :b #x4a :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x49 :a #x80) + (new 'static 'rgba :r #xc :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x43 :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x3e :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x2d :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2b :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x48 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4c :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x4d :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x4d :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x4a :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x4a :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4b :a #x80) + (new 'static 'rgba :r #x11 :g #x3f :b #x4d :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4f :a #x80) + (new 'static 'rgba :r #x14 :g #x43 :b #x50 :a #x80) + (new 'static 'rgba :r #x14 :g #x42 :b #x50 :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4f :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x4d :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x4c :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x4b :a #x80) + (new 'static 'rgba :r #xd :g #x39 :b #x4d :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x4e :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4e :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x4e :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x4c :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #xb :g #x37 :b #x4a :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x4d :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4f :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x4f :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4f :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x4f :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x4e :a #x80) + (new 'static 'rgba :r #xe :g #x3a :b #x4e :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x4e :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x4c :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x49 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x46 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3c :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x43 :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x48 :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4e :a #x80) + (new 'static 'rgba :r #x1b :g #x47 :b #x54 :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x57 :a #x80) + (new 'static 'rgba :r #x1e :g #x4a :b #x58 :a #x80) + (new 'static 'rgba :r #x1d :g #x4b :b #x56 :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x55 :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x55 :a #x80) + (new 'static 'rgba :r #x1b :g #x48 :b #x56 :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x58 :a #x80) + (new 'static 'rgba :r #x20 :g #x4d :b #x59 :a #x80) + (new 'static 'rgba :r #x21 :g #x50 :b #x5a :a #x80) + (new 'static 'rgba :r #x21 :g #x4c :b #x5a :a #x80) + (new 'static 'rgba :r #x20 :g #x4d :b #x59 :a #x80) + (new 'static 'rgba :r #x1f :g #x4c :b #x58 :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x57 :a #x80) + (new 'static 'rgba :r #x1b :g #x4b :b #x56 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x54 :a #x80) + (new 'static 'rgba :r #x15 :g #x44 :b #x52 :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x51 :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x4f :a #x80) + (new 'static 'rgba :r #xd :g #x3e :b #x4e :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x4c :a #x80) + (new 'static 'rgba :r #xc :g #x38 :b #x4b :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x4c :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x50 :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x52 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x52 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x52 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x51 :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x51 :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x52 :a #x80) + (new 'static 'rgba :r #xe :g #x3a :b #x50 :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x4e :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x4b :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x4 :g #x33 :b #x3e :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3c :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x3e :a #x80) + (new 'static 'rgba :r #x8 :g #x33 :b #x44 :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x49 :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x52 :a #x80) + (new 'static 'rgba :r #x1f :g #x4c :b #x58 :a #x80) + (new 'static 'rgba :r #x23 :g #x51 :b #x5a :a #x80) + (new 'static 'rgba :r #x23 :g #x4f :b #x5b :a #x80) + (new 'static 'rgba :r #x23 :g #x50 :b #x5c :a #x80) + (new 'static 'rgba :r #x23 :g #x4f :b #x5b :a #x80) + (new 'static 'rgba :r #x22 :g #x4f :b #x5b :a #x80) + (new 'static 'rgba :r #x23 :g #x52 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x51 :b #x5c :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x52 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x53 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x23 :g #x51 :b #x5b :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x5b :a #x80) + (new 'static 'rgba :r #x21 :g #x4d :b #x5a :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x58 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x55 :a #x80) + (new 'static 'rgba :r #x15 :g #x41 :b #x52 :a #x80) + (new 'static 'rgba :r #x12 :g #x3e :b #x50 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x50 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x52 :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x3c :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x3f :b #x53 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x52 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x53 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x53 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x52 :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x50 :a #x80) + (new 'static 'rgba :r #xd :g #x39 :b #x4c :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x46 :a #x80) + (new 'static 'rgba :r #x5 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x2d :b #x3b :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4a :a #x80) + (new 'static 'rgba :r #x19 :g #x49 :b #x53 :a #x80) + (new 'static 'rgba :r #x22 :g #x4e :b #x5a :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x5b :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x5c :a #x80) + (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x53 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x52 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x55 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x24 :g #x50 :b #x5d :a #x80) + (new 'static 'rgba :r #x22 :g #x52 :b #x5c :a #x80) + (new 'static 'rgba :r #x21 :g #x4e :b #x5b :a #x80) + (new 'static 'rgba :r #x1e :g #x4e :b #x59 :a #x80) + (new 'static 'rgba :r #x1c :g #x4a :b #x57 :a #x80) + (new 'static 'rgba :r #x1b :g #x4c :b #x57 :a #x80) + (new 'static 'rgba :r #x19 :g #x4a :b #x56 :a #x80) + (new 'static 'rgba :r #x15 :g #x45 :b #x54 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x42 :b #x54 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x54 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x54 :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x55 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x55 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x51 :a #x80) + (new 'static 'rgba :r #xe :g #x3d :b #x4b :a #x80) + (new 'static 'rgba :r #x9 :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x3f :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) + (new 'static 'rgba :r #x9 :g #x35 :b #x45 :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x4b :a #x80) + (new 'static 'rgba :r #x1b :g #x4a :b #x54 :a #x80) + (new 'static 'rgba :r #x22 :g #x51 :b #x5a :a #x80) + (new 'static 'rgba :r #x24 :g #x50 :b #x5c :a #x80) + (new 'static 'rgba :r #x25 :g #x55 :b #x5d :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x51 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x56 :b #x5f :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5f :a #x80) + (new 'static 'rgba :r #x27 :g #x55 :b #x5f :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5f :a #x80) + (new 'static 'rgba :r #x27 :g #x54 :b #x5f :a #x80) + (new 'static 'rgba :r #x26 :g #x56 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x53 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x55 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x51 :b #x5d :a #x80) + (new 'static 'rgba :r #x24 :g #x55 :b #x5d :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x23 :g #x50 :b #x5d :a #x80) + (new 'static 'rgba :r #x20 :g #x4d :b #x5b :a #x80) + (new 'static 'rgba :r #x1c :g #x4c :b #x58 :a #x80) + (new 'static 'rgba :r #x18 :g #x49 :b #x55 :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x54 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x54 :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x54 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x3f :b #x54 :a #x80) + (new 'static 'rgba :r #x13 :g #x44 :b #x55 :a #x80) + (new 'static 'rgba :r #x16 :g #x44 :b #x56 :a #x80) + (new 'static 'rgba :r #x15 :g #x44 :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x3d :b #x4e :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3e :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x40 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x47 :a #x80) + (new 'static 'rgba :r #x13 :g #x42 :b #x4e :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x54 :a #x80) + (new 'static 'rgba :r #x20 :g #x50 :b #x59 :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) + (new 'static 'rgba :r #x25 :g #x51 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x53 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x52 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5f :a #x80) + (new 'static 'rgba :r #x27 :g #x55 :b #x5f :a #x80) + (new 'static 'rgba :r #x27 :g #x56 :b #x5f :a #x80) + (new 'static 'rgba :r #x27 :g #x55 :b #x5f :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5f :a #x80) + (new 'static 'rgba :r #x26 :g #x56 :b #x5f :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x5f :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x52 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x55 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x50 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x5d :a #x80) + (new 'static 'rgba :r #x23 :g #x50 :b #x5c :a #x80) + (new 'static 'rgba :r #x21 :g #x50 :b #x5b :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x59 :a #x80) + (new 'static 'rgba :r #x17 :g #x44 :b #x55 :a #x80) + (new 'static 'rgba :r #x13 :g #x42 :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x42 :b #x55 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x55 :a #x80) + (new 'static 'rgba :r #x16 :g #x43 :b #x56 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x56 :a #x80) + (new 'static 'rgba :r #x17 :g #x44 :b #x54 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x4f :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x47 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x8 :g #x34 :b #x40 :a #x80) + (new 'static 'rgba :r #x10 :g #x3b :b #x4a :a #x80) + (new 'static 'rgba :r #x15 :g #x43 :b #x4f :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x54 :a #x80) + (new 'static 'rgba :r #x1d :g #x4b :b #x57 :a #x80) + (new 'static 'rgba :r #x20 :g #x4f :b #x5a :a #x80) + (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x5d :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x27 :g #x53 :b #x5f :a #x80) + (new 'static 'rgba :r #x28 :g #x57 :b #x60 :a #x80) + (new 'static 'rgba :r #x27 :g #x54 :b #x5f :a #x80) + (new 'static 'rgba :r #x27 :g #x55 :b #x5f :a #x80) + (new 'static 'rgba :r #x27 :g #x54 :b #x5f :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x53 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x50 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x50 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x50 :b #x5c :a #x80) + (new 'static 'rgba :r #x23 :g #x53 :b #x5b :a #x80) + (new 'static 'rgba :r #x24 :g #x50 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x54 :b #x5c :a #x80) + (new 'static 'rgba :r #x23 :g #x52 :b #x5b :a #x80) + (new 'static 'rgba :r #x23 :g #x50 :b #x5b :a #x80) + (new 'static 'rgba :r #x23 :g #x51 :b #x5c :a #x80) + (new 'static 'rgba :r #x20 :g #x4f :b #x5b :a #x80) + (new 'static 'rgba :r #x18 :g #x48 :b #x57 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x54 :a #x80) + (new 'static 'rgba :r #x13 :g #x43 :b #x55 :a #x80) + (new 'static 'rgba :r #x16 :g #x47 :b #x56 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x57 :a #x80) + (new 'static 'rgba :r #x16 :g #x45 :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x4f :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x48 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x40 :a #x80) + (new 'static 'rgba :r #x12 :g #x3d :b #x4b :a #x80) + (new 'static 'rgba :r #x16 :g #x42 :b #x50 :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x54 :a #x80) + (new 'static 'rgba :r #x1c :g #x4b :b #x57 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x59 :a #x80) + (new 'static 'rgba :r #x20 :g #x4d :b #x5a :a #x80) + (new 'static 'rgba :r #x20 :g #x4f :b #x5b :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x5a :a #x80) + (new 'static 'rgba :r #x20 :g #x4d :b #x5b :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x5d :a #x80) + (new 'static 'rgba :r #x26 :g #x56 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x52 :b #x5f :a #x80) + (new 'static 'rgba :r #x27 :g #x56 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) + (new 'static 'rgba :r #x24 :g #x53 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) + (new 'static 'rgba :r #x23 :g #x51 :b #x5b :a #x80) + (new 'static 'rgba :r #x23 :g #x50 :b #x5b :a #x80) + (new 'static 'rgba :r #x23 :g #x4f :b #x5b :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x5b :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x5b :a #x80) + (new 'static 'rgba :r #x22 :g #x4f :b #x5a :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x5a :a #x80) + (new 'static 'rgba :r #x22 :g #x4e :b #x5a :a #x80) + (new 'static 'rgba :r #x21 :g #x4e :b #x5a :a #x80) + (new 'static 'rgba :r #x1f :g #x4d :b #x5a :a #x80) + (new 'static 'rgba :r #x17 :g #x47 :b #x55 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x53 :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x53 :a #x80) + (new 'static 'rgba :r #x13 :g #x43 :b #x54 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x55 :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x55 :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x53 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4e :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x3f :a #x80) + (new 'static 'rgba :r #x12 :g #x3e :b #x4b :a #x80) + (new 'static 'rgba :r #x16 :g #x44 :b #x51 :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x54 :a #x80) + (new 'static 'rgba :r #x1c :g #x49 :b #x57 :a #x80) + (new 'static 'rgba :r #x1d :g #x4b :b #x59 :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x5a :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x5a :a #x80) + (new 'static 'rgba :r #x1f :g #x4b :b #x5a :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x5b :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x5d :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x5c :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x5c :a #x80) + (new 'static 'rgba :r #x20 :g #x50 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x50 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5d :a #x80) + (new 'static 'rgba :r #x24 :g #x54 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) + (new 'static 'rgba :r #x23 :g #x51 :b #x5b :a #x80) + (new 'static 'rgba :r #x23 :g #x50 :b #x5b :a #x80) + (new 'static 'rgba :r #x22 :g #x4f :b #x5a :a #x80) + (new 'static 'rgba :r #x21 :g #x50 :b #x59 :a #x80) + (new 'static 'rgba :r #x21 :g #x4e :b #x59 :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x59 :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x59 :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x59 :a #x80) + (new 'static 'rgba :r #x21 :g #x4e :b #x59 :a #x80) + (new 'static 'rgba :r #x21 :g #x4f :b #x59 :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x58 :a #x80) + (new 'static 'rgba :r #x1d :g #x4d :b #x57 :a #x80) + (new 'static 'rgba :r #x15 :g #x45 :b #x54 :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x51 :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x50 :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x51 :a #x80) + (new 'static 'rgba :r #x11 :g #x42 :b #x52 :a #x80) + (new 'static 'rgba :r #x13 :g #x43 :b #x53 :a #x80) + (new 'static 'rgba :r #x13 :g #x44 :b #x53 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x4f :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x4a :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x11 :g #x3d :b #x4a :a #x80) + (new 'static 'rgba :r #x16 :g #x42 :b #x50 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x53 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x57 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x58 :a #x80) + (new 'static 'rgba :r #x1f :g #x4f :b #x5a :a #x80) + (new 'static 'rgba :r #x1f :g #x50 :b #x5b :a #x80) + (new 'static 'rgba :r #x1e :g #x4d :b #x5b :a #x80) + (new 'static 'rgba :r #x1c :g #x4d :b #x5a :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x58 :a #x80) + (new 'static 'rgba :r #x15 :g #x45 :b #x57 :a #x80) + (new 'static 'rgba :r #x13 :g #x3f :b #x56 :a #x80) + (new 'static 'rgba :r #x16 :g #x45 :b #x57 :a #x80) + (new 'static 'rgba :r #x1e :g #x4d :b #x5a :a #x80) + (new 'static 'rgba :r #x23 :g #x4f :b #x5d :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x5d :a #x80) + (new 'static 'rgba :r #x24 :g #x4f :b #x5b :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x5b :a #x80) + (new 'static 'rgba :r #x21 :g #x4f :b #x5a :a #x80) + (new 'static 'rgba :r #x21 :g #x4e :b #x59 :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x58 :a #x80) + (new 'static 'rgba :r #x20 :g #x4d :b #x58 :a #x80) + (new 'static 'rgba :r #x1f :g #x4d :b #x57 :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x56 :a #x80) + (new 'static 'rgba :r #x1d :g #x4c :b #x56 :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x56 :a #x80) + (new 'static 'rgba :r #x1e :g #x4a :b #x56 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x55 :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x56 :a #x80) + (new 'static 'rgba :r #x1a :g #x49 :b #x54 :a #x80) + (new 'static 'rgba :r #x14 :g #x42 :b #x51 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x4f :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4f :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x50 :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x50 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x51 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x50 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x4f :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x4b :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x46 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3d :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2f :b #x38 :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x3c :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x47 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x4e :a #x80) + (new 'static 'rgba :r #x15 :g #x44 :b #x51 :a #x80) + (new 'static 'rgba :r #x19 :g #x48 :b #x55 :a #x80) + (new 'static 'rgba :r #x19 :g #x49 :b #x57 :a #x80) + (new 'static 'rgba :r #x1a :g #x48 :b #x59 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x58 :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x56 :a #x80) + (new 'static 'rgba :r #x14 :g #x44 :b #x54 :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x54 :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x54 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x55 :a #x80) + (new 'static 'rgba :r #x13 :g #x3e :b #x54 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x58 :a #x80) + (new 'static 'rgba :r #x20 :g #x4f :b #x5a :a #x80) + (new 'static 'rgba :r #x1f :g #x4d :b #x59 :a #x80) + (new 'static 'rgba :r #x23 :g #x4f :b #x5a :a #x80) + (new 'static 'rgba :r #x23 :g #x50 :b #x5b :a #x80) + (new 'static 'rgba :r #x20 :g #x4f :b #x59 :a #x80) + (new 'static 'rgba :r #x20 :g #x4d :b #x58 :a #x80) + (new 'static 'rgba :r #x1f :g #x4e :b #x57 :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x56 :a #x80) + (new 'static 'rgba :r #x1e :g #x4a :b #x56 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x54 :a #x80) + (new 'static 'rgba :r #x1c :g #x48 :b #x54 :a #x80) + (new 'static 'rgba :r #x1c :g #x4a :b #x54 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x53 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x53 :a #x80) + (new 'static 'rgba :r #x1b :g #x47 :b #x53 :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x52 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x51 :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x4f :a #x80) + (new 'static 'rgba :r #xe :g #x3d :b #x4d :a #x80) + (new 'static 'rgba :r #xe :g #x3d :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4f :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x4f :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x4f :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x4f :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x50 :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x4f :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4c :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x49 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3e :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x48 :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x4b :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x41 :b #x4f :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x51 :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x50 :a #x80) + (new 'static 'rgba :r #xf :g #x3a :b #x50 :a #x80) + (new 'static 'rgba :r #xf :g #x3a :b #x4f :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x55 :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x54 :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x55 :a #x80) + (new 'static 'rgba :r #x19 :g #x48 :b #x57 :a #x80) + (new 'static 'rgba :r #x1d :g #x4c :b #x59 :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x56 :a #x80) + (new 'static 'rgba :r #x1a :g #x48 :b #x56 :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x57 :a #x80) + (new 'static 'rgba :r #x1e :g #x4d :b #x58 :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x57 :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x55 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x54 :a #x80) + (new 'static 'rgba :r #x1c :g #x4a :b #x54 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x53 :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x52 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x51 :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x51 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x51 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x50 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x50 :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x4f :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4d :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4d :a #x80) + (new 'static 'rgba :r #x11 :g #x3f :b #x4d :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x4e :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x4e :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x4e :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x4d :a #x80) + (new 'static 'rgba :r #xc :g #x39 :b #x4a :a #x80) + (new 'static 'rgba :r #xa :g #x36 :b #x47 :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x48 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x4a :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x4b :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x4b :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x4c :a #x80) + (new 'static 'rgba :r #xb :g #x3b :b #x4c :a #x80) + (new 'static 'rgba :r #xd :g #x39 :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x54 :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x54 :a #x80) + (new 'static 'rgba :r #x15 :g #x41 :b #x55 :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x57 :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x57 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x54 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x52 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x54 :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x56 :a #x80) + (new 'static 'rgba :r #x1c :g #x49 :b #x55 :a #x80) + (new 'static 'rgba :r #x1c :g #x49 :b #x54 :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x53 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x52 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x50 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x4f :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x4e :a #x80) + (new 'static 'rgba :r #x16 :g #x43 :b #x4e :a #x80) + (new 'static 'rgba :r #x16 :g #x42 :b #x4d :a #x80) + (new 'static 'rgba :r #x16 :g #x43 :b #x4e :a #x80) + (new 'static 'rgba :r #x16 :g #x43 :b #x4d :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x4d :a #x80) + (new 'static 'rgba :r #x16 :g #x42 :b #x4d :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x4c :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x4c :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4c :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x4c :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x4c :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x4c :a #x80) + (new 'static 'rgba :r #xe :g #x3d :b #x4d :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4d :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x4c :a #x80) + (new 'static 'rgba :r #xc :g #x39 :b #x4a :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x47 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x45 :a #x80) + (new 'static 'rgba :r #x9 :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x4a :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x4a :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x4a :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x4b :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x4d :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x4f :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x53 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x54 :a #x80) + (new 'static 'rgba :r #x14 :g #x43 :b #x55 :a #x80) + (new 'static 'rgba :r #x17 :g #x48 :b #x57 :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x57 :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x51 :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x51 :a #x80) + (new 'static 'rgba :r #x15 :g #x41 :b #x51 :a #x80) + (new 'static 'rgba :r #x1b :g #x47 :b #x53 :a #x80) + (new 'static 'rgba :r #x1c :g #x49 :b #x54 :a #x80) + (new 'static 'rgba :r #x1a :g #x48 :b #x52 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x51 :a #x80) + (new 'static 'rgba :r #x17 :g #x44 :b #x4f :a #x80) + (new 'static 'rgba :r #x16 :g #x43 :b #x4e :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x4d :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x4c :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x4b :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4a :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4a :a #x80) + (new 'static 'rgba :r #x13 :g #x3f :b #x4a :a #x80) + (new 'static 'rgba :r #x13 :g #x3f :b #x4a :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4a :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4b :a #x80) + (new 'static 'rgba :r #x13 :g #x3f :b #x4a :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x4b :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x4b :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x4a :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4b :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x4b :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x4b :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x4b :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x49 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x47 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x49 :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x4a :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x4b :a #x80) + (new 'static 'rgba :r #xd :g #x39 :b #x4e :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x50 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #x12 :g #x3e :b #x54 :a #x80) + (new 'static 'rgba :r #x15 :g #x45 :b #x56 :a #x80) + (new 'static 'rgba :r #x18 :g #x47 :b #x58 :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x58 :a #x80) + (new 'static 'rgba :r #x17 :g #x46 :b #x56 :a #x80) + (new 'static 'rgba :r #x12 :g #x43 :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x51 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x51 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x52 :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x54 :a #x80) + (new 'static 'rgba :r #x1c :g #x48 :b #x53 :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x51 :a #x80) + (new 'static 'rgba :r #x16 :g #x43 :b #x4f :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x4d :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4b :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x4a :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x49 :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x48 :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x48 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #xb :g #x37 :b #x49 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #x8 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x46 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x49 :a #x80) + (new 'static 'rgba :r #xb :g #x3b :b #x4b :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x52 :a #x80) + (new 'static 'rgba :r #x12 :g #x3e :b #x55 :a #x80) + (new 'static 'rgba :r #x15 :g #x43 :b #x57 :a #x80) + (new 'static 'rgba :r #x18 :g #x48 :b #x58 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x59 :a #x80) + (new 'static 'rgba :r #x1c :g #x4c :b #x59 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x57 :a #x80) + (new 'static 'rgba :r #x13 :g #x43 :b #x54 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #x11 :g #x3f :b #x51 :a #x80) + (new 'static 'rgba :r #x15 :g #x44 :b #x53 :a #x80) + (new 'static 'rgba :r #x1c :g #x4a :b #x55 :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x56 :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x53 :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x50 :a #x80) + (new 'static 'rgba :r #x14 :g #x42 :b #x4d :a #x80) + (new 'static 'rgba :r #x11 :g #x3f :b #x4b :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x4a :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x48 :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x43 :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x43 :a #x80) + (new 'static 'rgba :r #xb :g #x37 :b #x43 :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x47 :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x3f :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x48 :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x4d :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x56 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x59 :a #x80) + (new 'static 'rgba :r #x1c :g #x4c :b #x5a :a #x80) + (new 'static 'rgba :r #x21 :g #x4f :b #x5c :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x5c :a #x80) + (new 'static 'rgba :r #x20 :g #x4f :b #x5a :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x56 :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x53 :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x52 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #x17 :g #x44 :b #x53 :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x55 :a #x80) + (new 'static 'rgba :r #x21 :g #x4d :b #x55 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x52 :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x4e :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4c :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x4a :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x5 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x4 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x4 :g #x33 :b #x3f :a #x80) + (new 'static 'rgba :r #x4 :g #x33 :b #x3f :a #x80) + (new 'static 'rgba :r #x4 :g #x33 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x34 :b #x3f :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x40 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x40 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x41 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x3e :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x43 :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4f :a #x80) + (new 'static 'rgba :r #x16 :g #x47 :b #x56 :a #x80) + (new 'static 'rgba :r #x1c :g #x4a :b #x5a :a #x80) + (new 'static 'rgba :r #x20 :g #x4d :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x4f :b #x5d :a #x80) + (new 'static 'rgba :r #x26 :g #x53 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x5b :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x57 :a #x80) + (new 'static 'rgba :r #x13 :g #x3f :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x3d :b #x52 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x52 :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x53 :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x54 :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x53 :a #x80) + (new 'static 'rgba :r #x1c :g #x48 :b #x4f :a #x80) + (new 'static 'rgba :r #x18 :g #x43 :b #x4d :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4c :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x49 :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x4 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x3 :g #x33 :b #x3e :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x2 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x2 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x2 :g #x31 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x40 :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x49 :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x50 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x57 :a #x80) + (new 'static 'rgba :r #x21 :g #x51 :b #x5d :a #x80) + (new 'static 'rgba :r #x26 :g #x53 :b #x5f :a #x80) + (new 'static 'rgba :r #x28 :g #x55 :b #x5f :a #x80) + (new 'static 'rgba :r #x27 :g #x53 :b #x5f :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) + (new 'static 'rgba :r #x20 :g #x4f :b #x5b :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x57 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x55 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x53 :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x53 :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x54 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x54 :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x53 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x4f :a #x80) + (new 'static 'rgba :r #x1a :g #x44 :b #x4d :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x4b :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x49 :a #x80) + (new 'static 'rgba :r #x9 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x5 :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x4 :g #x34 :b #x40 :a #x80) + (new 'static 'rgba :r #x3 :g #x33 :b #x3e :a #x80) + (new 'static 'rgba :r #x2 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x2 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x2 :g #x31 :b #x3c :a #x80) + (new 'static 'rgba :r #x2 :g #x31 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3f :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3e :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3c :a #x80) + (new 'static 'rgba :r #x7 :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x50 :a #x80) + (new 'static 'rgba :r #x1b :g #x48 :b #x57 :a #x80) + (new 'static 'rgba :r #x22 :g #x52 :b #x5d :a #x80) + (new 'static 'rgba :r #x26 :g #x52 :b #x5f :a #x80) + (new 'static 'rgba :r #x26 :g #x56 :b #x5f :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x5d :a #x80) + (new 'static 'rgba :r #x21 :g #x4f :b #x5c :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x5a :a #x80) + (new 'static 'rgba :r #x1c :g #x4a :b #x59 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x57 :a #x80) + (new 'static 'rgba :r #x18 :g #x47 :b #x56 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x56 :a #x80) + (new 'static 'rgba :r #x1b :g #x4a :b #x55 :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x55 :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x54 :a #x80) + (new 'static 'rgba :r #x20 :g #x4b :b #x51 :a #x80) + (new 'static 'rgba :r #x1d :g #x46 :b #x4d :a #x80) + (new 'static 'rgba :r #x19 :g #x44 :b #x4b :a #x80) + (new 'static 'rgba :r #x15 :g #x41 :b #x4a :a #x80) + (new 'static 'rgba :r #x11 :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x43 :a #x80) + (new 'static 'rgba :r #x5 :g #x36 :b #x40 :a #x80) + (new 'static 'rgba :r #x4 :g #x35 :b #x3f :a #x80) + (new 'static 'rgba :r #x3 :g #x34 :b #x3e :a #x80) + (new 'static 'rgba :r #x3 :g #x33 :b #x3e :a #x80) + (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x4f :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x55 :a #x80) + (new 'static 'rgba :r #x1d :g #x4c :b #x59 :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x5b :a #x80) + (new 'static 'rgba :r #x1f :g #x4c :b #x5b :a #x80) + (new 'static 'rgba :r #x1c :g #x4a :b #x59 :a #x80) + (new 'static 'rgba :r #x1a :g #x49 :b #x58 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x57 :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x57 :a #x80) + (new 'static 'rgba :r #x19 :g #x4a :b #x56 :a #x80) + (new 'static 'rgba :r #x1b :g #x48 :b #x57 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x56 :a #x80) + (new 'static 'rgba :r #x1b :g #x47 :b #x54 :a #x80) + (new 'static 'rgba :r #x1c :g #x49 :b #x55 :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x55 :a #x80) + (new 'static 'rgba :r #x20 :g #x4b :b #x53 :a #x80) + (new 'static 'rgba :r #x20 :g #x4a :b #x50 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x4e :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x4c :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x4a :a #x80) + (new 'static 'rgba :r #x15 :g #x41 :b #x49 :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x48 :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x45 :a #x80) + (new 'static 'rgba :r #x8 :g #x38 :b #x42 :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x40 :a #x80) + (new 'static 'rgba :r #x5 :g #x34 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x3f :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x2 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x40 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x4d :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x50 :a #x80) + (new 'static 'rgba :r #x15 :g #x43 :b #x54 :a #x80) + (new 'static 'rgba :r #x16 :g #x42 :b #x54 :a #x80) + (new 'static 'rgba :r #x14 :g #x42 :b #x53 :a #x80) + (new 'static 'rgba :r #x13 :g #x43 :b #x53 :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #x13 :g #x3f :b #x52 :a #x80) + (new 'static 'rgba :r #x14 :g #x42 :b #x53 :a #x80) + (new 'static 'rgba :r #x14 :g #x44 :b #x52 :a #x80) + (new 'static 'rgba :r #x14 :g #x43 :b #x51 :a #x80) + (new 'static 'rgba :r #x14 :g #x43 :b #x50 :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x4f :a #x80) + (new 'static 'rgba :r #x14 :g #x42 :b #x50 :a #x80) + (new 'static 'rgba :r #x19 :g #x44 :b #x51 :a #x80) + (new 'static 'rgba :r #x1e :g #x4a :b #x54 :a #x80) + (new 'static 'rgba :r #x22 :g #x4d :b #x54 :a #x80) + (new 'static 'rgba :r #x22 :g #x4e :b #x53 :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x52 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x50 :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x4e :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x4b :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x8 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2b :b #x39 :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3e :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x49 :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x4c :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x4d :a #x80) + (new 'static 'rgba :r #xe :g #x3a :b #x4e :a #x80) + (new 'static 'rgba :r #xd :g #x39 :b #x4e :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x4e :a #x80) + (new 'static 'rgba :r #xe :g #x3d :b #x4f :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4f :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x4f :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x4d :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x4b :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x4b :a #x80) + (new 'static 'rgba :r #x13 :g #x42 :b #x4e :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x53 :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x56 :a #x80) + (new 'static 'rgba :r #x23 :g #x4f :b #x57 :a #x80) + (new 'static 'rgba :r #x22 :g #x4e :b #x54 :a #x80) + (new 'static 'rgba :r #x1f :g #x4c :b #x52 :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x4f :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x4c :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x48 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x40 :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x40 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2b :b #x39 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3d :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x43 :a #x80) + (new 'static 'rgba :r #x8 :g #x37 :b #x47 :a #x80) + (new 'static 'rgba :r #x9 :g #x39 :b #x49 :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x49 :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x4a :a #x80) + (new 'static 'rgba :r #xb :g #x37 :b #x4c :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x4e :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x51 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x51 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x51 :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x4e :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x4b :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x48 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x49 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x4d :a #x80) + (new 'static 'rgba :r #x19 :g #x48 :b #x52 :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x56 :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x57 :a #x80) + (new 'static 'rgba :r #x25 :g #x50 :b #x57 :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x55 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x51 :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x4d :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x48 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x45 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2f :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x41 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x7 :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x9 :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x4a :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x4d :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x51 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x54 :a #x80) + (new 'static 'rgba :r #x14 :g #x40 :b #x54 :a #x80) + (new 'static 'rgba :r #x14 :g #x45 :b #x54 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x51 :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x4e :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x4b :a #x80) + (new 'static 'rgba :r #xe :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x4b :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x4c :a #x80) + (new 'static 'rgba :r #x19 :g #x49 :b #x4f :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x53 :a #x80) + (new 'static 'rgba :r #x25 :g #x51 :b #x56 :a #x80) + (new 'static 'rgba :r #x25 :g #x52 :b #x57 :a #x80) + (new 'static 'rgba :r #x22 :g #x4e :b #x56 :a #x80) + (new 'static 'rgba :r #x1c :g #x48 :b #x52 :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x4e :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x48 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x5 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x49 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x48 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x45 :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x40 :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x8 :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x49 :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x4c :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x50 :a #x80) + (new 'static 'rgba :r #x14 :g #x43 :b #x54 :a #x80) + (new 'static 'rgba :r #x16 :g #x46 :b #x57 :a #x80) + (new 'static 'rgba :r #x16 :g #x44 :b #x56 :a #x80) + (new 'static 'rgba :r #x15 :g #x46 :b #x54 :a #x80) + (new 'static 'rgba :r #x14 :g #x42 :b #x51 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x41 :b #x4b :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4a :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x49 :a #x80) + (new 'static 'rgba :r #x15 :g #x45 :b #x4a :a #x80) + (new 'static 'rgba :r #x1a :g #x48 :b #x4a :a #x80) + (new 'static 'rgba :r #x1f :g #x4a :b #x4b :a #x80) + (new 'static 'rgba :r #x23 :g #x4d :b #x4e :a #x80) + (new 'static 'rgba :r #x26 :g #x51 :b #x53 :a #x80) + (new 'static 'rgba :r #x23 :g #x51 :b #x55 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x51 :a #x80) + (new 'static 'rgba :r #x15 :g #x45 :b #x4c :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x9 :g #x3a :b #x44 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x47 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x48 :a #x80) + (new 'static 'rgba :r #xe :g #x3d :b #x4b :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x4c :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x4d :a #x80) + (new 'static 'rgba :r #xe :g #x3d :b #x4c :a #x80) + (new 'static 'rgba :r #xc :g #x39 :b #x4a :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x46 :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x3d :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x42 :a #x80) + (new 'static 'rgba :r #x8 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x4b :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x4f :a #x80) + (new 'static 'rgba :r #x16 :g #x42 :b #x54 :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x59 :a #x80) + (new 'static 'rgba :r #x1e :g #x4a :b #x59 :a #x80) + (new 'static 'rgba :r #x1a :g #x49 :b #x56 :a #x80) + (new 'static 'rgba :r #x16 :g #x44 :b #x51 :a #x80) + (new 'static 'rgba :r #x13 :g #x42 :b #x4e :a #x80) + (new 'static 'rgba :r #x11 :g #x42 :b #x4a :a #x80) + (new 'static 'rgba :r #xf :g #x42 :b #x47 :a #x80) + (new 'static 'rgba :r #x10 :g #x42 :b #x45 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x44 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x41 :a #x80) + (new 'static 'rgba :r #x1a :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x1d :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x21 :g #x47 :b #x42 :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x4d :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x4a :a #x80) + (new 'static 'rgba :r #x17 :g #x46 :b #x49 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x48 :a #x80) + (new 'static 'rgba :r #xe :g #x3d :b #x47 :a #x80) + (new 'static 'rgba :r #xc :g #x3d :b #x46 :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x48 :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x49 :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x4a :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x4a :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x4b :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x4b :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x4c :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x4e :a #x80) + (new 'static 'rgba :r #x14 :g #x42 :b #x4f :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x50 :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4f :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x4e :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4c :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3d :a #x80) + (new 'static 'rgba :r #x5 :g #x34 :b #x40 :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x45 :a #x80) + (new 'static 'rgba :r #x9 :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x4b :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x4f :a #x80) + (new 'static 'rgba :r #x17 :g #x47 :b #x54 :a #x80) + (new 'static 'rgba :r #x1d :g #x48 :b #x56 :a #x80) + (new 'static 'rgba :r #x21 :g #x52 :b #x5a :a #x80) + (new 'static 'rgba :r #x21 :g #x4f :b #x58 :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x55 :a #x80) + (new 'static 'rgba :r #x18 :g #x49 :b #x4f :a #x80) + (new 'static 'rgba :r #x12 :g #x45 :b #x4b :a #x80) + (new 'static 'rgba :r #xf :g #x44 :b #x46 :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x42 :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x3e :a #x80) + (new 'static 'rgba :r #x11 :g #x3d :b #x3d :a #x80) + (new 'static 'rgba :r #x14 :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #x19 :g #x40 :b #x39 :a #x80) + (new 'static 'rgba :r #x1c :g #x41 :b #x38 :a #x80) + (new 'static 'rgba :r #x1f :g #x43 :b #x3b :a #x80) + (new 'static 'rgba :r #x20 :g #x45 :b #x3e :a #x80) + (new 'static 'rgba :r #x20 :g #x44 :b #x3e :a #x80) + (new 'static 'rgba :r #x1c :g #x44 :b #x40 :a #x80) + (new 'static 'rgba :r #x18 :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x46 :a #x80) + (new 'static 'rgba :r #x11 :g #x42 :b #x49 :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x48 :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x49 :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x4a :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4b :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4c :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4d :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x50 :a #x80) + (new 'static 'rgba :r #x16 :g #x44 :b #x51 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x52 :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x52 :a #x80) + (new 'static 'rgba :r #x16 :g #x44 :b #x51 :a #x80) + (new 'static 'rgba :r #x15 :g #x43 :b #x50 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x4e :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x49 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x4b :a #x80) + (new 'static 'rgba :r #x11 :g #x3d :b #x4e :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x52 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x55 :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x55 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x4f :a #x80) + (new 'static 'rgba :r #x1c :g #x48 :b #x51 :a #x80) + (new 'static 'rgba :r #x1f :g #x50 :b #x53 :a #x80) + (new 'static 'rgba :r #x1a :g #x4b :b #x4e :a #x80) + (new 'static 'rgba :r #x12 :g #x43 :b #x45 :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x40 :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x3b :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x37 :a #x80) + (new 'static 'rgba :r #x14 :g #x3f :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x40 :b #x34 :a #x80) + (new 'static 'rgba :r #x1a :g #x41 :b #x35 :a #x80) + (new 'static 'rgba :r #x1e :g #x42 :b #x36 :a #x80) + (new 'static 'rgba :r #x1f :g #x43 :b #x35 :a #x80) + (new 'static 'rgba :r #x1d :g #x42 :b #x38 :a #x80) + (new 'static 'rgba :r #x1b :g #x41 :b #x39 :a #x80) + (new 'static 'rgba :r #x17 :g #x40 :b #x3e :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x43 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x47 :a #x80) + (new 'static 'rgba :r #x10 :g #x42 :b #x48 :a #x80) + (new 'static 'rgba :r #x10 :g #x42 :b #x49 :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x49 :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x49 :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x4b :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x4c :a #x80) + (new 'static 'rgba :r #x12 :g #x43 :b #x4e :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x51 :a #x80) + (new 'static 'rgba :r #x19 :g #x48 :b #x53 :a #x80) + (new 'static 'rgba :r #x1a :g #x48 :b #x54 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x53 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x53 :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x52 :a #x80) + (new 'static 'rgba :r #x13 :g #x42 :b #x4f :a #x80) + (new 'static 'rgba :r #xf :g #x3b :b #x4b :a #x80) + (new 'static 'rgba :r #x9 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x47 :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x4b :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x4f :a #x80) + (new 'static 'rgba :r #x17 :g #x46 :b #x52 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x54 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x54 :a #x80) + (new 'static 'rgba :r #x18 :g #x43 :b #x4c :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x46 :a #x80) + (new 'static 'rgba :r #x14 :g #x44 :b #x48 :a #x80) + (new 'static 'rgba :r #x1a :g #x4b :b #x4c :a #x80) + (new 'static 'rgba :r #x1b :g #x4a :b #x4a :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x41 :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x3c :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x36 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x36 :a #x80) + (new 'static 'rgba :r #x12 :g #x3e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x40 :b #x2e :a #x80) + (new 'static 'rgba :r #x18 :g #x40 :b #x2e :a #x80) + (new 'static 'rgba :r #x1b :g #x41 :b #x2f :a #x80) + (new 'static 'rgba :r #x1c :g #x42 :b #x31 :a #x80) + (new 'static 'rgba :r #x1b :g #x42 :b #x32 :a #x80) + (new 'static 'rgba :r #x19 :g #x42 :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x40 :b #x3b :a #x80) + (new 'static 'rgba :r #x13 :g #x3f :b #x3e :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x44 :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x46 :a #x80) + (new 'static 'rgba :r #x10 :g #x42 :b #x47 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #xe :g #x41 :b #x48 :a #x80) + (new 'static 'rgba :r #xe :g #x41 :b #x49 :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x4a :a #x80) + (new 'static 'rgba :r #x11 :g #x3f :b #x4d :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x50 :a #x80) + (new 'static 'rgba :r #x19 :g #x48 :b #x53 :a #x80) + (new 'static 'rgba :r #x1c :g #x48 :b #x55 :a #x80) + (new 'static 'rgba :r #x1b :g #x48 :b #x55 :a #x80) + (new 'static 'rgba :r #x1a :g #x48 :b #x54 :a #x80) + (new 'static 'rgba :r #x16 :g #x44 :b #x52 :a #x80) + (new 'static 'rgba :r #x13 :g #x3f :b #x50 :a #x80) + (new 'static 'rgba :r #xe :g #x3a :b #x4b :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3b :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #xc :g #x38 :b #x49 :a #x80) + (new 'static 'rgba :r #x10 :g #x41 :b #x4e :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x52 :a #x80) + (new 'static 'rgba :r #x1b :g #x47 :b #x54 :a #x80) + (new 'static 'rgba :r #x1d :g #x4c :b #x54 :a #x80) + (new 'static 'rgba :r #x19 :g #x43 :b #x4c :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x46 :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x43 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x45 :a #x80) + (new 'static 'rgba :r #x16 :g #x45 :b #x46 :a #x80) + (new 'static 'rgba :r #x1a :g #x48 :b #x47 :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x3d :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x37 :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x34 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x35 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x2c :a #x80) + (new 'static 'rgba :r #x11 :g #x3d :b #x2a :a #x80) + (new 'static 'rgba :r #x14 :g #x3e :b #x29 :a #x80) + (new 'static 'rgba :r #x16 :g #x3f :b #x27 :a #x80) + (new 'static 'rgba :r #x17 :g #x3f :b #x29 :a #x80) + (new 'static 'rgba :r #x16 :g #x3f :b #x2c :a #x80) + (new 'static 'rgba :r #x15 :g #x3f :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x36 :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x40 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x43 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x45 :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x46 :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x47 :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x47 :a #x80) + (new 'static 'rgba :r #xe :g #x41 :b #x48 :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x4a :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x4e :a #x80) + (new 'static 'rgba :r #x16 :g #x44 :b #x51 :a #x80) + (new 'static 'rgba :r #x19 :g #x48 :b #x53 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x54 :a #x80) + (new 'static 'rgba :r #x17 :g #x46 :b #x54 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x52 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4f :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x4a :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #xe :g #x3a :b #x4b :a #x80) + (new 'static 'rgba :r #x14 :g #x43 :b #x50 :a #x80) + (new 'static 'rgba :r #x1a :g #x48 :b #x55 :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x54 :a #x80) + (new 'static 'rgba :r #x1a :g #x46 :b #x4f :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x48 :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x44 :a #x80) + (new 'static 'rgba :r #x11 :g #x3f :b #x43 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x42 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x40 :a #x80) + (new 'static 'rgba :r #x11 :g #x3d :b #x36 :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x33 :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x31 :a #x80) + (new 'static 'rgba :r #xe :g #x3d :b #x30 :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x2b :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x26 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x22 :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x1c :a #x80) + (new 'static 'rgba :r #xf :g #x3a :b #x1d :a #x80) + (new 'static 'rgba :r #x10 :g #x3b :b #x21 :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x24 :a #x80) + (new 'static 'rgba :r #x11 :g #x3d :b #x2b :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x38 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x40 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x42 :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x43 :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x44 :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x44 :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x46 :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x48 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x4b :a #x80) + (new 'static 'rgba :r #x13 :g #x42 :b #x4f :a #x80) + (new 'static 'rgba :r #x16 :g #x46 :b #x53 :a #x80) + (new 'static 'rgba :r #x16 :g #x45 :b #x54 :a #x80) + (new 'static 'rgba :r #x15 :g #x43 :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x50 :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x4d :a #x80) + (new 'static 'rgba :r #xa :g #x36 :b #x48 :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x3f :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x31 :b #x3c :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x45 :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4a :a #x80) + (new 'static 'rgba :r #x15 :g #x45 :b #x51 :a #x80) + (new 'static 'rgba :r #x1d :g #x4b :b #x56 :a #x80) + (new 'static 'rgba :r #x1f :g #x4c :b #x53 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x4e :a #x80) + (new 'static 'rgba :r #x13 :g #x43 :b #x48 :a #x80) + (new 'static 'rgba :r #x13 :g #x43 :b #x47 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x44 :a #x80) + (new 'static 'rgba :r #x17 :g #x44 :b #x45 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x13 :g #x3e :b #x39 :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x33 :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x2d :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x2a :a #x80) + (new 'static 'rgba :r #xe :g #x3d :b #x2a :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x24 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x21 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x19 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x17 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x15 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x16 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x1c :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x23 :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x35 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x3e :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x40 :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x41 :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x42 :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x42 :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x44 :a #x80) + (new 'static 'rgba :r #xd :g #x3f :b #x46 :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x49 :a #x80) + (new 'static 'rgba :r #x10 :g #x41 :b #x4d :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x51 :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x52 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x4f :a #x80) + (new 'static 'rgba :r #xb :g #x3b :b #x4a :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x3d :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3c :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3f :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x43 :a #x80) + (new 'static 'rgba :r #xc :g #x39 :b #x49 :a #x80) + (new 'static 'rgba :r #x13 :g #x43 :b #x50 :a #x80) + (new 'static 'rgba :r #x1b :g #x47 :b #x55 :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x55 :a #x80) + (new 'static 'rgba :r #x1d :g #x4c :b #x51 :a #x80) + (new 'static 'rgba :r #x18 :g #x48 :b #x4b :a #x80) + (new 'static 'rgba :r #x19 :g #x4a :b #x4b :a #x80) + (new 'static 'rgba :r #x18 :g #x47 :b #x49 :a #x80) + (new 'static 'rgba :r #x16 :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x34 :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x29 :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x29 :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x22 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x1f :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x18 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x12 :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #xe :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #xd :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x10 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x15 :a #x80) + (new 'static 'rgba :r #x8 :g #x37 :b #x1f :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x26 :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x33 :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x39 :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x3e :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x3f :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x3e :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x3f :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x44 :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x47 :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x4b :a #x80) + (new 'static 'rgba :r #x11 :g #x42 :b #x4f :a #x80) + (new 'static 'rgba :r #x11 :g #x3d :b #x51 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x50 :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x4c :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x46 :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3b :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x4c :a #x80) + (new 'static 'rgba :r #x14 :g #x44 :b #x50 :a #x80) + (new 'static 'rgba :r #x19 :g #x48 :b #x52 :a #x80) + (new 'static 'rgba :r #x19 :g #x48 :b #x50 :a #x80) + (new 'static 'rgba :r #x19 :g #x4b :b #x4c :a #x80) + (new 'static 'rgba :r #x16 :g #x45 :b #x46 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x3e :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x37 :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x30 :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x25 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x23 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x1e :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x19 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x14 :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x12 :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xa :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xa :a #x80) + (new 'static 'rgba :r #x3 :g #x32 :b #xb :a #x80) + (new 'static 'rgba :r #x4 :g #x33 :b #xe :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x17 :a #x80) + (new 'static 'rgba :r #x8 :g #x37 :b #x1f :a #x80) + (new 'static 'rgba :r #x9 :g #x39 :b #x24 :a #x80) + (new 'static 'rgba :r #xb :g #x3b :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x32 :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x37 :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x3b :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x3c :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x3d :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x3f :a #x80) + (new 'static 'rgba :r #xd :g #x3e :b #x41 :a #x80) + (new 'static 'rgba :r #xe :g #x42 :b #x47 :a #x80) + (new 'static 'rgba :r #xf :g #x41 :b #x4a :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x4e :a #x80) + (new 'static 'rgba :r #xf :g #x3b :b #x50 :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x4e :a #x80) + (new 'static 'rgba :r #xa :g #x36 :b #x49 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x4 :g #x2e :b #x3d :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2f :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x40 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x48 :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x4c :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x4c :a #x80) + (new 'static 'rgba :r #x13 :g #x44 :b #x4a :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x45 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x40 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x36 :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x30 :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x2c :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x26 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x20 :a #x80) + (new 'static 'rgba :r #x8 :g #x37 :b #x1d :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x15 :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x11 :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #xf :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xc :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xa :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xc :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #xb :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x10 :a #x80) + (new 'static 'rgba :r #x5 :g #x35 :b #x19 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x1f :a #x80) + (new 'static 'rgba :r #x9 :g #x39 :b #x26 :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x2b :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x2f :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x36 :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x37 :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x3b :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x3b :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x40 :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x46 :a #x80) + (new 'static 'rgba :r #xf :g #x41 :b #x4a :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x4e :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x4e :a #x80) + (new 'static 'rgba :r #xb :g #x3b :b #x4b :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3f :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3f :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x48 :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x47 :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x45 :a #x80) + (new 'static 'rgba :r #xd :g #x3f :b #x41 :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x3d :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x37 :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x37 :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x33 :a #x80) + (new 'static 'rgba :r #xb :g #x3c :b #x31 :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x39 :b #x26 :a #x80) + (new 'static 'rgba :r #x8 :g #x38 :b #x20 :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x1b :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x16 :a #x80) + (new 'static 'rgba :r #x4 :g #x34 :b #x11 :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #xf :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xb :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x8 :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x9 :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xa :a #x80) + (new 'static 'rgba :r #x3 :g #x32 :b #xc :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x10 :a #x80) + (new 'static 'rgba :r #x5 :g #x34 :b #x16 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x1c :a #x80) + (new 'static 'rgba :r #x8 :g #x38 :b #x23 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x2e :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x33 :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x36 :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x3b :a #x80) + (new 'static 'rgba :r #xd :g #x3f :b #x40 :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x47 :a #x80) + (new 'static 'rgba :r #xf :g #x41 :b #x4b :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x4d :a #x80) + (new 'static 'rgba :r #xd :g #x39 :b #x4c :a #x80) + (new 'static 'rgba :r #xa :g #x36 :b #x48 :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x41 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x5 :g #x35 :b #x40 :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x8 :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x43 :a #x80) + (new 'static 'rgba :r #x9 :g #x3c :b #x42 :a #x80) + (new 'static 'rgba :r #xa :g #x3c :b #x3d :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #xc :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x36 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x33 :a #x80) + (new 'static 'rgba :r #xb :g #x3b :b #x2f :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x2b :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x27 :a #x80) + (new 'static 'rgba :r #x8 :g #x37 :b #x24 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x20 :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x18 :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x16 :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x11 :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xd :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xa :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x9 :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xc :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xd :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xe :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x12 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x15 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x1b :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x23 :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x28 :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x2f :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #xd :g #x40 :b #x43 :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x48 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x4b :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x4c :a #x80) + (new 'static 'rgba :r #xb :g #x37 :b #x49 :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x4 :g #x34 :b #x3f :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x3 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x35 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x41 :a #x80) + (new 'static 'rgba :r #x7 :g #x38 :b #x40 :a #x80) + (new 'static 'rgba :r #x8 :g #x38 :b #x3f :a #x80) + (new 'static 'rgba :r #x9 :g #x3a :b #x3d :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x31 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x30 :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x2d :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x2c :a #x80) + (new 'static 'rgba :r #x9 :g #x35 :b #x28 :a #x80) + (new 'static 'rgba :r #x8 :g #x34 :b #x24 :a #x80) + (new 'static 'rgba :r #x7 :g #x32 :b #x22 :a #x80) + (new 'static 'rgba :r #x6 :g #x31 :b #x1a :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x16 :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x15 :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x11 :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x10 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x12 :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x11 :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x11 :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x15 :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x18 :a #x80) + (new 'static 'rgba :r #x6 :g #x30 :b #x1b :a #x80) + (new 'static 'rgba :r #x8 :g #x31 :b #x20 :a #x80) + (new 'static 'rgba :r #x9 :g #x33 :b #x26 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x2e :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #xc :g #x3d :b #x3d :a #x80) + (new 'static 'rgba :r #xc :g #x40 :b #x45 :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x48 :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x4a :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #x8 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x41 :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x36 :b #x3e :a #x80) + (new 'static 'rgba :r #x6 :g #x37 :b #x3d :a #x80) + (new 'static 'rgba :r #x7 :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x8 :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x9 :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x39 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x34 :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x30 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x32 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x2f :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x2e :a #x80) + (new 'static 'rgba :r #x8 :g #x34 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x32 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x31 :b #x23 :a #x80) + (new 'static 'rgba :r #x6 :g #x30 :b #x23 :a #x80) + (new 'static 'rgba :r #x6 :g #x30 :b #x21 :a #x80) + (new 'static 'rgba :r #x7 :g #x2f :b #x20 :a #x80) + (new 'static 'rgba :r #x6 :g #x2f :b #x1e :a #x80) + (new 'static 'rgba :r #x5 :g #x2e :b #x1b :a #x80) + (new 'static 'rgba :r #x5 :g #x2e :b #x1c :a #x80) + (new 'static 'rgba :r #x6 :g #x2e :b #x1d :a #x80) + (new 'static 'rgba :r #x6 :g #x2f :b #x1f :a #x80) + (new 'static 'rgba :r #x6 :g #x31 :b #x23 :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x2c :a #x80) + (new 'static 'rgba :r #x8 :g #x37 :b #x31 :a #x80) + (new 'static 'rgba :r #x8 :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x41 :a #x80) + (new 'static 'rgba :r #xa :g #x3c :b #x44 :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x8 :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x41 :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3c :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3c :a #x80) + (new 'static 'rgba :r #x5 :g #x35 :b #x3d :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x3d :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x3e :a #x80) + (new 'static 'rgba :r #x7 :g #x39 :b #x3e :a #x80) + (new 'static 'rgba :r #x8 :g #x3c :b #x3e :a #x80) + (new 'static 'rgba :r #x8 :g #x39 :b #x3c :a #x80) + (new 'static 'rgba :r #x8 :g #x39 :b #x3a :a #x80) + (new 'static 'rgba :r #x8 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x8 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x33 :a #x80) + (new 'static 'rgba :r #x7 :g #x38 :b #x33 :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x33 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x2f :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x2d :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x2a :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x29 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x2a :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x30 :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x5 :g #x36 :b #x3c :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x3f :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x41 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x2 :g #x30 :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2b :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) + (new 'static 'rgba :r #x4 :g #x33 :b #x3c :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x3e :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x3e :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x3d :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x3d :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x3d :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x3c :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x3b :a #x80) + (new 'static 'rgba :r #x5 :g #x35 :b #x3b :a #x80) + (new 'static 'rgba :r #x5 :g #x36 :b #x3b :a #x80) + (new 'static 'rgba :r #x4 :g #x36 :b #x3b :a #x80) + (new 'static 'rgba :r #x5 :g #x35 :b #x3b :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x3d :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x3e :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x3e :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x3d :a #x80) + (new 'static 'rgba :r #x5 :g #x36 :b #x3b :a #x80) + (new 'static 'rgba :r #x4 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x4 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x4 :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x4 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x4 :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x4 :g #x33 :b #x39 :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3a :a #x80) + (new 'static 'rgba :r #x4 :g #x33 :b #x3b :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x32 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2b :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2b :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + ) + ) ) -(define *ocean-mid-indices-village2* (new 'static 'ocean-mid-indices - :data (new 'static 'array uint16 36 - #xffff - #xffff - #xffff - #x60 - #x0 - #x0 - #xffff - #xffff - #xffff - #x60 - #x0 - #x0 - #xffff - #xffff - #x61 - #x62 - #x0 - #x0 - #x63 - #x64 - #x65 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - ) - ) +(define *ocean-near-indices-village1* + (new 'static 'ocean-near-indices + :data + (new 'static 'inline-array ocean-near-index 68 + (new 'static 'ocean-near-index) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x1 + #xffff + #xffff + #x0 + #x2 + #xffff + #xffff + #x0 + #x0 + #x3 + #xffff + #x0 + #x0 + #x3 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4 + #x0 + #x5 + #xffff + #x6 + #x0 + #x7 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x8 + #x9 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #xa + #xb + #x0 + #x0 + #x0 + #x14 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x15 + #xffff + #xffff + #xffff + #x0 + #x1a + #xffff + #xffff + #x0 + #x20 + #x21 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xc + #xd + #xe + #xf + #xffff + #xffff + #x16 + #x17 + #xffff + #x1b + #x1c + #x0 + #x22 + #x23 + #x24 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x10 + #x11 + #x12 + #x13 + #x0 + #x0 + #x18 + #x19 + #x1d + #x1e + #x0 + #x1f + #x0 + #x0 + #x0 + #x25 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x26 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x27 + #x0 + #x17 + #x0 + #x0 + #x0 + #x0 + #x2b + #x0 + #x0 + #x0 + #x2e + #x0 + #x0 + #x0 + #x32 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x28 + #x29 + #x2a + #x2c + #x2d + #xffff + #xffff + #x2f + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x30 + #x31 + #xffff + #x33 + #x34 + #x35 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xb + #xffff + #xffff + #xffff + #x36 + #x37 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x38 + #x0 + #x0 + #x0 + #x38 + #x0 + #x0 + #x0 + #x48 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x19 + #xffff + #xffff + #xffff + #x4f + #x50 + #x51 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x3e + #x3f + #x40 + #x41 + #x49 + #x4a + #x4b + #x4c + #xffff + #xffff + #xffff + #x52 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x39 + #x3a + #x2d + #xffff + #x42 + #x43 + #xffff + #xffff + #x4d + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x3b + #x3c + #xffff + #xffff + #xffff + #x44 + #x45 + #x46 + #xffff + #xffff + #x4e + #x0 + #xffff + #xffff + #x53 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x3d + #x0 + #x0 + #x0 + #x47 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x54 + #xffff + #x0 + #x0 + #x59 + #xffff + #x0 + #x0 + #x5c + #x56 + #x0 + #x62 + #x63 + #x64 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x65 + #x66 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #x55 + #x56 + #xffff + #xffff + #x5a + #x5b + #xffff + #xffff + #x5d + #x5e + #x5f + #x67 + #x68 + #x69 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x60 + #x60 + #x60 + #x61 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x57 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x6a + #x6b + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x58 + #x0 + #x0 + #x0 + #x3d + #x0 + #x0 + #x0 + #x3d + #x0 + #x0 + #x0 + #x3d + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x6c + #xffff + #xffff + #x0 + #x70 + #xffff + #xffff + #x0 + #x70 + #xffff + #xffff + #x0 + #x7e + #x7f + #x80 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x81 + #x82 + #x83 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x6d + #xffff + #x71 + #x72 + #x17 + #x77 + #x78 + #x79 + #x7a + #x0 + #x0 + #x84 + #x85 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x6e + #x41 + #x6f + #x0 + #x73 + #x74 + #x75 + #x76 + #x7b + #x7c + #x7d + #x17 + #x86 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x87 + #x88 + #x0 + #x0 + #x8e + #xffff + #x0 + #x0 + #x91 + #xffff + #x0 + #x0 + #x95 + #x96 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #x89 + #x20 + #x8a + #xffff + #x8f + #x0 + #x0 + #xffff + #x92 + #x0 + #x0 + #xffff + #x97 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x8b + #x0 + #x0 + #x8c + #x0 + #x0 + #x0 + #x90 + #x0 + #x0 + #x0 + #x93 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #x8d + #x0 + #x0 + #x66 + #x0 + #x0 + #x0 + #x94 + #x0 + #x0 + #x0 + #x98 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x20 + #x0 + #x0 + #x0 + #x9b + #x0 + #x0 + #x0 + #x0 + #x0 + #x9d + #x9e + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x99 + #x9a + #x0 + #x0 + #x9c + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x9f + #xa0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #xa1 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x79 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #xb2 + #xb3 + #xb4 + #xb5 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #xb6 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #xab + #xac + #x0 + #xb7 + #xb8 + #xb9 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #xa2 + #xa3 + #x0 + #xa6 + #xa7 + #xffff + #xad + #xae + #xaf + #xffff + #xba + #xbb + #xbc + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xa4 + #xa5 + #x0 + #x0 + #xffff + #xffff + #xa8 + #x0 + #xffff + #xffff + #xb0 + #xb1 + #xffff + #xffff + #xbd + #xbe + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #xa9 + #xaa + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #xbf + #xc0 + #xc1 + #x0 + #xcc + #xffff + #xffff + #x0 + #xd3 + #xffff + #xffff + #xd8 + #xd9 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xc2 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xc3 + #x0 + #x0 + #xffff + #xcd + #x0 + #x0 + #xffff + #xd4 + #xc3 + #x0 + #xffff + #xda + #x12 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #xc4 + #x0 + #x0 + #x70 + #x3b + #x0 + #x0 + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #xc5 + #xc6 + #xc7 + #xce + #xcf + #xd0 + #xd1 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xdb + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xc8 + #xc9 + #xca + #xffff + #xc2 + #xffff + #xffff + #xffff + #xd5 + #xd6 + #xd7 + #xffff + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xd2 + #xffff + #xffff + #xffff + #x0 + #x3 + #xffff + #xffff + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xcb + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #xdc + #xdd + #xde + #xe3 + #xe4 + #xffff + #xffff + #x5c + #x56 + #xffff + #xffff + #xf0 + #x2d + #x40 + #xf1 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x64 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xf2 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xf3 + #xf4 + #xf5 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xdf + #x0 + #x0 + #xffff + #xe5 + #xe6 + #x0 + #xea + #xeb + #xec + #x0 + #xf6 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xe0 + #xe1 + #xffff + #xffff + #xe7 + #x0 + #xffff + #xffff + #xed + #x0 + #xffff + #xffff + #xf7 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xe2 + #xffff + #xffff + #x0 + #x0 + #xe8 + #xffff + #xe9 + #x0 + #x0 + #xee + #xef + #x0 + #xf8 + #xf9 + #x12 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xfa + #xfb + #xfc + #xfd + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xfe + #xffff + #xffff + #xffff + #x105 + #xb + #xffff + #xffff + #x0 + #x0 + #x4f + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xff + #x100 + #x0 + #x0 + #x106 + #x107 + #x0 + #x0 + #x10d + #x10e + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x101 + #xffff + #x0 + #x0 + #x0 + #xfa + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x102 + #x108 + #xffff + #xffff + #x109 + #xfa + #x10f + #xffff + #xffff + #x0 + #x0 + #x114 + #x115 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x10a + #x0 + #x0 + #x10b + #xffff + #xffff + #x110 + #x111 + #xffff + #x116 + #xfd + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x103 + #x104 + #xc3 + #x0 + #xffff + #x10c + #x17 + #x0 + #x112 + #x113 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x0 + #x117 + #x0 + #x118 + #x0 + #x11a + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x119 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + ) + ) ) -(define *ocean-mid-masks-village2* (new 'static 'ocean-mid-masks :data #x25b0)) +(define *ocean-trans-indices-village1* + (new 'static 'ocean-trans-indices + :data + (new 'static 'inline-array ocean-trans-index 2304 + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x11b :child 1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x11c :child 2) + (new 'static 'ocean-trans-index :parent #x11d :child 3) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 4) + (new 'static 'ocean-trans-index :parent #x11e :child 5) + (new 'static 'ocean-trans-index :parent #x11f :child 6) + (new 'static 'ocean-trans-index :child 7) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 8) + (new 'static 'ocean-trans-index :child 9) + (new 'static 'ocean-trans-index :parent #x120 :child 10) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x121 :child 11) + (new 'static 'ocean-trans-index :parent 33 :child 12) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 13) + (new 'static 'ocean-trans-index :parent #x122 :child 14) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x123 :child 15) + (new 'static 'ocean-trans-index :parent #x124 :child 16) + (new 'static 'ocean-trans-index :parent #x125 :child 17) + (new 'static 'ocean-trans-index :child 18) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x126 :child 19) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x11d :child 20) + (new 'static 'ocean-trans-index :parent #x127 :child 21) + (new 'static 'ocean-trans-index :parent 71 :child 22) + (new 'static 'ocean-trans-index :parent #x128 :child 23) + (new 'static 'ocean-trans-index :child 24) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x129 :child 25) + (new 'static 'ocean-trans-index :parent #x12a :child 26) + (new 'static 'ocean-trans-index :parent #x12b :child 27) + (new 'static 'ocean-trans-index :child 28) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #xc5 :child 29) + (new 'static 'ocean-trans-index :parent 6 :child 30) + (new 'static 'ocean-trans-index :child 31) + (new 'static 'ocean-trans-index :parent 23 :child 32) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 33) + (new 'static 'ocean-trans-index :child 34) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 35) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 36) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 37) + (new 'static 'ocean-trans-index :child 38) + (new 'static 'ocean-trans-index :child 39) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 40) + (new 'static 'ocean-trans-index :parent #x12c :child 41) + (new 'static 'ocean-trans-index :parent #x12d :child 42) + (new 'static 'ocean-trans-index :child 43) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x12e :child 44) + (new 'static 'ocean-trans-index :parent 45 :child 45) + (new 'static 'ocean-trans-index :parent 6 :child 46) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x8b :child 47) + (new 'static 'ocean-trans-index :parent #x12f :child 48) + (new 'static 'ocean-trans-index :parent #x130 :child 49) + (new 'static 'ocean-trans-index :parent #x131 :child 50) + (new 'static 'ocean-trans-index :child 51) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x132 :child 52) + (new 'static 'ocean-trans-index :parent #x133 :child 53) + (new 'static 'ocean-trans-index :parent #x12a :child 54) + (new 'static 'ocean-trans-index :parent 18 :child 55) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 3 :child 56) + (new 'static 'ocean-trans-index :parent #x7c :child 57) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x134 :child 58) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 59) + (new 'static 'ocean-trans-index :parent #x69 :child 60) + (new 'static 'ocean-trans-index :child 61) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 20 :child 62) + (new 'static 'ocean-trans-index :parent #x135 :child 63) + (new 'static 'ocean-trans-index :parent #x136 :child 64) + (new 'static 'ocean-trans-index :parent #x137 :child 65) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 66) + (new 'static 'ocean-trans-index :child 67) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + ) + ) + ) + +(define *ocean-mid-indices-village1* + (new 'static 'ocean-mid-indices + :data + (new 'static 'array uint16 36 + #x138 + #xffff + #x139 + #x13a + #x0 + #x0 + #x13b + #x13c + #x13d + #x13e + #x0 + #x0 + #x0 + #x0 + #x13f + #x140 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + ) + +(define *ocean-mid-masks-village1* + (new 'static 'ocean-mid-masks + :data + (new 'static 'inline-array ocean-mid-mask 322 + (new 'static 'ocean-mid-mask) + (new 'static 'ocean-mid-mask :dword #xfefefefefcf8f8f8) + (new 'static 'ocean-mid-mask :dword #x808080c0c0c0fe) + (new 'static 'ocean-mid-mask :dword #xfcfcfcfcfcfcfcfc) + (new 'static 'ocean-mid-mask :dword #x30303070f1f3fff) + (new 'static 'ocean-mid-mask :dword #xf0f0f8f8fcfefeff) + (new 'static 'ocean-mid-mask :dword #x101010101010101) + (new 'static 'ocean-mid-mask :dword #xf8f8f8f8f0f0f0f0) + (new 'static 'ocean-mid-mask :dword #x10103071fffffff) + (new 'static 'ocean-mid-mask :dword #xf0f8f8fcfeffffff) + (new 'static 'ocean-mid-mask :dword #x80c0e0f0f8fcfc) + (new 'static 'ocean-mid-mask :dword #xfeffffffffffffff) + (new 'static 'ocean-mid-mask :dword #xffffffffffff0f03) + (new 'static 'ocean-mid-mask :dword #xffffffffffff0000) + (new 'static 'ocean-mid-mask :dword #xfffffffffffffef8) + (new 'static 'ocean-mid-mask :dword #x101030f3fffffff) + (new 'static 'ocean-mid-mask :dword #xffffff) + (new 'static 'ocean-mid-mask :dword #x387cfeffffff) + (new 'static 'ocean-mid-mask :dword #x101) + (new 'static 'ocean-mid-mask :dword #xfefcfcf8f0f0f0f0) + (new 'static 'ocean-mid-mask :dword #xe0f8) + (new 'static 'ocean-mid-mask :dword #x80c0e0f0feffff) + (new 'static 'ocean-mid-mask :dword #x3f3f3f3f3f7fffff) + (new 'static 'ocean-mid-mask :dword #x1) + (new 'static 'ocean-mid-mask :dword #x8080808000) + (new 'static 'ocean-mid-mask :dword #xf8feffffffffffff) + (new 'static 'ocean-mid-mask :dword #xc0c0c0e0f0f8fcfe) + (new 'static 'ocean-mid-mask :dword #x3ffffffffffffff) + (new 'static 'ocean-mid-mask :dword #x3c3f3f3f3f3f3f3f) + (new 'static 'ocean-mid-mask :dword #x80c0c0e0c08000) + (new 'static 'ocean-mid-mask :dword #xf1f1f1f1f1f0f00) + (new 'static 'ocean-mid-mask :dword #x80e0) + (new 'static 'ocean-mid-mask :dword #x80) + (new 'static 'ocean-mid-mask :dword #xf8fcfefcfeffff) + (new 'static 'ocean-mid-mask :dword #x1f1f1f3f3f7fffff) + (new 'static 'ocean-mid-mask :dword #x8000000000000001) + (new 'static 'ocean-mid-mask :dword #x301000000000038) + (new 'static 'ocean-mid-mask :dword #xe0c0c08080000000) + (new 'static 'ocean-mid-mask :dword #xe0f0fcff) + (new 'static 'ocean-mid-mask :dword #x70f0f0f) + (new 'static 'ocean-mid-mask :dword #xe000000000000000) + (new 'static 'ocean-mid-mask :dword #xff80000000000000) + (new 'static 'ocean-mid-mask :dword #xfffffefcf8f0f0e0) + (new 'static 'ocean-mid-mask :dword #x60600) + (new 'static 'ocean-mid-mask :dword #xf8f0e0c0c0800000) + (new 'static 'ocean-mid-mask :dword #xfffffffffffffffe) + (new 'static 'ocean-mid-mask :dword #xc080800000000000) + (new 'static 'ocean-mid-mask :dword #xfffffffffffefefc) + (new 'static 'ocean-mid-mask :dword #x31fffffffffffff) + (new 'static 'ocean-mid-mask :dword #xffffffffffff) + (new 'static 'ocean-mid-mask :dword #xf0f0f0e0e0e0e0c0) + (new 'static 'ocean-mid-mask :dword #x3071f1f1f3f7fff) + (new 'static 'ocean-mid-mask :dword #xfcf8e00000000001) + (new 'static 'ocean-mid-mask :dword #xffffff0f00000000) + (new 'static 'ocean-mid-mask :dword #x7f3f0000000000f8) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0fcfeffff) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0f0f0f0f0) + (new 'static 'ocean-mid-mask :dword #x7f7f7fffffffffff) + (new 'static 'ocean-mid-mask :dword #xf0e0e0c0c0800103) + (new 'static 'ocean-mid-mask :dword #xffffffffffffff7f) + (new 'static 'ocean-mid-mask :dword #x808080c0e0e0f0f0) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0f0f0f0f) + (new 'static 'ocean-mid-mask :dword #xf0f1f1f1f1f1f3f) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0f0f8fe) + (new 'static 'ocean-mid-mask :dword #xc0ffffffffffffff) + (new 'static 'ocean-mid-mask :dword #x3f3fffffffffffff) + (new 'static 'ocean-mid-mask :dword #xc080070f0f1f3f3f) + (new 'static 'ocean-mid-mask :dword #xfffffffefcfcf8f0) + (new 'static 'ocean-mid-mask :dword #x7f3f1f0f07030180) + (new 'static 'ocean-mid-mask :dword #x80e0e0f0ff) + (new 'static 'ocean-mid-mask :dword #x1f3f7fffffff) + (new 'static 'ocean-mid-mask :dword #xf0f) + (new 'static 'ocean-mid-mask :dword #x80c0e0f0f0) + (new 'static 'ocean-mid-mask :dword #xffff07070707070f) + (new 'static 'ocean-mid-mask :dword #xfffffefcf0000000) + (new 'static 'ocean-mid-mask :dword #xffffffff07000000) + (new 'static 'ocean-mid-mask :dword #x70703000000003e) + (new 'static 'ocean-mid-mask :dword #xfefefefefcf0f0e0) + (new 'static 'ocean-mid-mask :dword #xffffff7f3f1f0701) + (new 'static 'ocean-mid-mask :dword #xf0) + (new 'static 'ocean-mid-mask :dword #xc0fcffff) + (new 'static 'ocean-mid-mask :dword #xfcfcfeffffffffff) + (new 'static 'ocean-mid-mask :dword #xffffffffffffc707) + (new 'static 'ocean-mid-mask :dword #x7f3f3f3f3f3f3f7f) + (new 'static 'ocean-mid-mask :dword #xe0e0e0e0f0f8fcfc) + (new 'static 'ocean-mid-mask :dword #xf0f0fffffffffff) + (new 'static 'ocean-mid-mask :dword #xfefefeffffffffff) + (new 'static 'ocean-mid-mask :dword #xffffffffffff0f0f) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0f0f0000) + (new 'static 'ocean-mid-mask :dword #xf0f8f8e0e0e0e0e0) + (new 'static 'ocean-mid-mask :dword #x8787878707070707) + (new 'static 'ocean-mid-mask :dword #xfffffffffffffefe) + (new 'static 'ocean-mid-mask :dword #x80c0c0c0) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0f070787) + (new 'static 'ocean-mid-mask :dword #xfefefefefeffffff) + (new 'static 'ocean-mid-mask :dword #x3ffffffff) + (new 'static 'ocean-mid-mask :dword #xffffffff) + (new 'static 'ocean-mid-mask :dword #x808080ffffffff) + (new 'static 'ocean-mid-mask :dword #x8c00000000000000) + (new 'static 'ocean-mid-mask :dword #xfffcf0c000000000) + (new 'static 'ocean-mid-mask :dword #xfffffffffffefefe) + (new 'static 'ocean-mid-mask :dword #xfffffffffffffff) + (new 'static 'ocean-mid-mask :dword #xffffffffffffff) + (new 'static 'ocean-mid-mask :dword #x71f7fffffffff) + (new 'static 'ocean-mid-mask :dword #x107070f) + (new 'static 'ocean-mid-mask :dword #xfcfe) + (new 'static 'ocean-mid-mask :dword #x80c0e0f0fc) + (new 'static 'ocean-mid-mask :dword #xfcfeffffffffffff) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0f0f0f0fc) + (new 'static 'ocean-mid-mask :dword #x70fffffffffffff) + (new 'static 'ocean-mid-mask :dword #xf0feffffffffffff) + (new 'static 'ocean-mid-mask :dword #x1070f0f0f) + (new 'static 'ocean-mid-mask :dword #xe0e0e0e0e0e0e0e0) + (new 'static 'ocean-mid-mask :dword #x1f3f3f7fffffffff) + (new 'static 'ocean-mid-mask :dword #x187fffff) + (new 'static 'ocean-mid-mask :dword #xc0c0c0c0c0c0c0e0) + (new 'static 'ocean-mid-mask :dword #x73f3f3f3f3f3f3f) + (new 'static 'ocean-mid-mask :dword #xe0e0e0e0c0000000) + (new 'static 'ocean-mid-mask :dword #x101030301000000) + (new 'static 'ocean-mid-mask :dword #x70f0f1fffffffff) + (new 'static 'ocean-mid-mask :dword #x103070f) + (new 'static 'ocean-mid-mask :dword #x183c18000000) + (new 'static 'ocean-mid-mask :dword #xfcfcfcfcfcfcf8f0) + (new 'static 'ocean-mid-mask :dword #x3f3f3fffffffffff) + (new 'static 'ocean-mid-mask :dword #x303030303) + (new 'static 'ocean-mid-mask :dword #xc0) + (new 'static 'ocean-mid-mask :dword #x183870e0e0e0e0) + (new 'static 'ocean-mid-mask :dword #xf0f8fcffffffff) + (new 'static 'ocean-mid-mask :dword #x3cffffffffffffff) + (new 'static 'ocean-mid-mask :dword #x7fffffffffffffff) + (new 'static 'ocean-mid-mask :dword #x80ffffffffffffff) + (new 'static 'ocean-mid-mask :dword #x3f3f3f3f3f3f7fff) + (new 'static 'ocean-mid-mask :dword #x303800000000) + (new 'static 'ocean-mid-mask :dword #xc0c0e0f0f0f8f8f8) + (new 'static 'ocean-mid-mask :dword #xff3f3f3f3f3f3f3f) + (new 'static 'ocean-mid-mask :dword #x8000000000000000) + (new 'static 'ocean-mid-mask :dword #xfffcf8e080000000) + (new 'static 'ocean-mid-mask :dword #x3f03010000000000) + (new 'static 'ocean-mid-mask :dword #xf1f) + (new 'static 'ocean-mid-mask :dword #xc0e0e0c0c0000) + (new 'static 'ocean-mid-mask :dword #xf0f0f0e0c0c0c0c0) + (new 'static 'ocean-mid-mask :dword #x10303030303) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0f0f0f0e0) + (new 'static 'ocean-mid-mask :dword #x3f7f7f7f7f7f7f7f) + (new 'static 'ocean-mid-mask :dword #xf8fcfcfcfefefefe) + (new 'static 'ocean-mid-mask :dword #xc0c0c0c0e0f0f0f0) + (new 'static 'ocean-mid-mask :dword #x3f3f3f3f3f3f3f3f) + (new 'static 'ocean-mid-mask :dword #xc0c0f0f0f0) + (new 'static 'ocean-mid-mask :dword #x1f1f1f3f1f1f1f00) + (new 'static 'ocean-mid-mask :dword #x80c0c0c0c0c0) + (new 'static 'ocean-mid-mask :dword #xc0f0ffffffffffff) + (new 'static 'ocean-mid-mask :dword #x1f1f1f3f3f3f3f3f) + (new 'static 'ocean-mid-mask :dword #xf1f1f) + (new 'static 'ocean-mid-mask :dword #x7efefeffffffff) + (new 'static 'ocean-mid-mask :dword #x70f1f1f) + (new 'static 'ocean-mid-mask :dword #x80c0c080000000) + (new 'static 'ocean-mid-mask :dword #x70f0f07000000) + (new 'static 'ocean-mid-mask :dword #xc000000000000000) + (new 'static 'ocean-mid-mask :dword #xf00000000000000) + (new 'static 'ocean-mid-mask :dword #x80f0f0f8fcfcf0e0) + (new 'static 'ocean-mid-mask :dword #x30f3f7f3f3f3f1f) + (new 'static 'ocean-mid-mask :dword #x40e04000000) + (new 'static 'ocean-mid-mask :dword #xfef0c00000000000) + (new 'static 'ocean-mid-mask :dword #xff8f878080800000) + (new 'static 'ocean-mid-mask :dword #xffffffff7f3f3f00) + (new 'static 'ocean-mid-mask :dword #x3f07000000000000) + (new 'static 'ocean-mid-mask :dword #x1e0c80c0c0e0e0c0) + (new 'static 'ocean-mid-mask :dword #xfefeffffffffffff) + (new 'static 'ocean-mid-mask :dword #x7f07070707070707) + (new 'static 'ocean-mid-mask :dword #x808080800000) + (new 'static 'ocean-mid-mask :dword #x70f1f1f0f0700) + (new 'static 'ocean-mid-mask :dword #xc0c0800000000000) + (new 'static 'ocean-mid-mask :dword #x7f7f7f7f7e3c3800) + (new 'static 'ocean-mid-mask :dword #x103810) + (new 'static 'ocean-mid-mask :dword #x3070787c7e1e) + (new 'static 'ocean-mid-mask :dword #xfcfcf8f0f0f8fcfc) + (new 'static 'ocean-mid-mask :dword #x7f7fffffffffffff) + (new 'static 'ocean-mid-mask :dword #x101010100) + (new 'static 'ocean-mid-mask :dword #xfcfcf8f0e0000000) + (new 'static 'ocean-mid-mask :dword #xffffffffff7c3800) + (new 'static 'ocean-mid-mask :dword #xffffffffe3c08000) + (new 'static 'ocean-mid-mask :dword #xffcfcf8f07070303) + (new 'static 'ocean-mid-mask :dword #x3f3f3f1f1f1f1f1f) + (new 'static 'ocean-mid-mask :dword #x2000000000000000) + (new 'static 'ocean-mid-mask :dword #xc0e0e0f0f0e0) + (new 'static 'ocean-mid-mask :dword #x101ffffff7f) + (new 'static 'ocean-mid-mask :dword #xfffcf8f0f0f0e000) + (new 'static 'ocean-mid-mask :dword #xffffffff03010100) + (new 'static 'ocean-mid-mask :dword #xfffffff1f8f8f8f8) + (new 'static 'ocean-mid-mask :dword #xffffff7f3f3f3f3f) + (new 'static 'ocean-mid-mask :dword #xff7f7f0000000000) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0e0c08000) + (new 'static 'ocean-mid-mask :dword #xffffffffffff0f07) + (new 'static 'ocean-mid-mask :dword #xffffffffff7f3c18) + (new 'static 'ocean-mid-mask :dword #xfffffffffffcfcfc) + (new 'static 'ocean-mid-mask :dword #x100000000000000) + (new 'static 'ocean-mid-mask :dword #x3e00000000000000) + (new 'static 'ocean-mid-mask :dword #xc0f0f8f870) + (new 'static 'ocean-mid-mask :dword #x80c0000000) + (new 'static 'ocean-mid-mask :dword #xe0e070703008080) + (new 'static 'ocean-mid-mask :dword #xfcf8f0f0f0ffffff) + (new 'static 'ocean-mid-mask :dword #xff0f0703070fffff) + (new 'static 'ocean-mid-mask :dword #xffffc0c0e0ffffff) + (new 'static 'ocean-mid-mask :dword #x1010101010101) + (new 'static 'ocean-mid-mask :dword #xe0e0e0e0e0e0f0f0) + (new 'static 'ocean-mid-mask :dword #x303010101010101) + (new 'static 'ocean-mid-mask :dword #xfffffffffffffffc) + (new 'static 'ocean-mid-mask :dword #xffffff7f3f1f0700) + (new 'static 'ocean-mid-mask :dword #xffffff0800000000) + (new 'static 'ocean-mid-mask :dword #xe3c3808000000000) + (new 'static 'ocean-mid-mask :dword #x3f3f3f3f3f3f7f7f) + (new 'static 'ocean-mid-mask :dword #x80e0f0f0f0f0f0) + (new 'static 'ocean-mid-mask :dword #xffff3f1f03030303) + (new 'static 'ocean-mid-mask :dword #x80c1ffffffffff) + (new 'static 'ocean-mid-mask :dword #x3c3fffffffffffff) + (new 'static 'ocean-mid-mask :dword #xf8fcffffffffffff) + (new 'static 'ocean-mid-mask :dword #xfefefc7800000000) + (new 'static 'ocean-mid-mask :dword #xffff800000000000) + (new 'static 'ocean-mid-mask :dword #x1f3f3f3f3fffffff) + (new 'static 'ocean-mid-mask :dword #x303030307073f7f) + (new 'static 'ocean-mid-mask :dword #xe0c0800000000000) + (new 'static 'ocean-mid-mask :dword #xffffff0000000000) + (new 'static 'ocean-mid-mask :dword #xffffff8000000000) + (new 'static 'ocean-mid-mask :dword #x1f1f1f1f1f1f1f1f) + (new 'static 'ocean-mid-mask :dword #x3fffffffffffffff) + (new 'static 'ocean-mid-mask :dword #x1070707) + (new 'static 'ocean-mid-mask :dword #x8080c0c0e0e0e0) + (new 'static 'ocean-mid-mask :dword #xc080000000000000) + (new 'static 'ocean-mid-mask :dword #xfffffcf8f0f0f0e0) + (new 'static 'ocean-mid-mask :dword #xffffffffff3f1f1f) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0f000000) + (new 'static 'ocean-mid-mask :dword #x307070f0f0f0f1f) + (new 'static 'ocean-mid-mask :dword #x80c0e0f0f8fcfe) + (new 'static 'ocean-mid-mask :dword #x707070707070707) + (new 'static 'ocean-mid-mask :dword #x30303070f1f7fff) + (new 'static 'ocean-mid-mask :dword #xff) + (new 'static 'ocean-mid-mask :dword #xf) + (new 'static 'ocean-mid-mask :dword #x303030707030303) + (new 'static 'ocean-mid-mask :dword #xfffffefcfcfcfcfc) + (new 'static 'ocean-mid-mask :dword #x101030303030303) + (new 'static 'ocean-mid-mask :dword #xe0e0e0c0c0800000) + (new 'static 'ocean-mid-mask :dword #xf1f3fffffffffff) + (new 'static 'ocean-mid-mask :dword #x8080c0ffffffffff) + (new 'static 'ocean-mid-mask :dword #x3f7fffffffffffff) + (new 'static 'ocean-mid-mask :dword #xc0ffffffffff) + (new 'static 'ocean-mid-mask :dword #x7fffffffffff) + (new 'static 'ocean-mid-mask :dword #x1030303) + (new 'static 'ocean-mid-mask :dword #xffff7f3f0f070303) + (new 'static 'ocean-mid-mask :dword #xc0c0) + (new 'static 'ocean-mid-mask :dword #x307effff) + (new 'static 'ocean-mid-mask :dword #x80c0) + (new 'static 'ocean-mid-mask :dword #xc1e3f3f7f7f) + (new 'static 'ocean-mid-mask :dword #x8080) + (new 'static 'ocean-mid-mask :dword #x10307) + (new 'static 'ocean-mid-mask :dword #xe0c0c0c080808080) + (new 'static 'ocean-mid-mask :dword #x307ffffffffffff) + (new 'static 'ocean-mid-mask :dword #x1e1f1f1f1f1f1f1f) + (new 'static 'ocean-mid-mask :dword #x80c0c0c0c0e0f0fc) + (new 'static 'ocean-mid-mask :dword #xf07030101010101) + (new 'static 'ocean-mid-mask :dword #xfffefcf0c0800000) + (new 'static 'ocean-mid-mask :dword #xff7f3f1f0f070600) + (new 'static 'ocean-mid-mask :dword #xe0f0f8fcfcfcfc) + (new 'static 'ocean-mid-mask :dword #x7f0f070301010101) + (new 'static 'ocean-mid-mask :dword #xc) + (new 'static 'ocean-mid-mask :dword #xe0f0f8fcfeffffff) + (new 'static 'ocean-mid-mask :dword #xffffff7f3f1f0f0f) + (new 'static 'ocean-mid-mask :dword #xfff3e10000000000) + (new 'static 'ocean-mid-mask :dword #xf0e0e0e0c0c08000) + (new 'static 'ocean-mid-mask :dword #x70f1f3f3f7fffff) + (new 'static 'ocean-mid-mask :dword #xc0fcfefe7f) + (new 'static 'ocean-mid-mask :dword #x101010000) + (new 'static 'ocean-mid-mask :dword #xc0f0f8fcfeffffff) + (new 'static 'ocean-mid-mask :dword #x707070701010100) + (new 'static 'ocean-mid-mask :dword #x80e0e0f0f0f0) + (new 'static 'ocean-mid-mask :dword #x73f7fffffff) + (new 'static 'ocean-mid-mask :dword #x103) + (new 'static 'ocean-mid-mask :dword #x8080e0f8) + (new 'static 'ocean-mid-mask :dword #xc0e0f8ffffffffff) + (new 'static 'ocean-mid-mask :dword #x30f3fffffffff) + (new 'static 'ocean-mid-mask :dword #x7e1c000000000000) + (new 'static 'ocean-mid-mask :dword #x40e0e0e0e0c0) + (new 'static 'ocean-mid-mask :dword #x307070703) + (new 'static 'ocean-mid-mask :dword #x1c7effffffff7e) + (new 'static 'ocean-mid-mask :dword #xfffffffff8f8fcfc) + (new 'static 'ocean-mid-mask :dword #xfffffffff8f8ffff) + (new 'static 'ocean-mid-mask :dword #xfffffffff3ffffff) + (new 'static 'ocean-mid-mask :dword #xfffffffff8fcfeff) + (new 'static 'ocean-mid-mask :dword #xfffffffff0f1f3f0) + (new 'static 'ocean-mid-mask :dword #xfffffffffffefcf0) + (new 'static 'ocean-mid-mask :dword #xfffffffff1f3ffff) + (new 'static 'ocean-mid-mask :dword #xfffffffff8feffff) + (new 'static 'ocean-mid-mask :dword #xfffffffff7f0f0ff) + (new 'static 'ocean-mid-mask :dword #xfffffffffffefcf8) + (new 'static 'ocean-mid-mask :dword #xfffffffff3f3f1fc) + (new 'static 'ocean-mid-mask :dword #xfffffffff0f0f8f8) + (new 'static 'ocean-mid-mask :dword #xfffffffff0f1f9f9) + (new 'static 'ocean-mid-mask :dword #xfffffffffcfffff7) + (new 'static 'ocean-mid-mask :dword #xfffffffff0fcfcfc) + (new 'static 'ocean-mid-mask :dword #xfffffffff1ffffff) + (new 'static 'ocean-mid-mask :dword #xfffffffff0f0f1f7) + (new 'static 'ocean-mid-mask :dword #xfffffffff8f8f8f0) + (new 'static 'ocean-mid-mask :dword #xfffffffff3f3f3f0) + (new 'static 'ocean-mid-mask :dword #xfffffffffcfcfcf0) + (new 'static 'ocean-mid-mask :dword #xfffffffff7fff0f0) + (new 'static 'ocean-mid-mask :dword #xfffffffff0f8fef8) + (new 'static 'ocean-mid-mask :dword #xfffffffff6f7f7ff) + (new 'static 'ocean-mid-mask :dword #xfffffffff0fcfcf0) + (new 'static 'ocean-mid-mask :dword #xfffffffffefffffe) + (new 'static 'ocean-mid-mask :dword #xfffffffff0f0f4f6) + (new 'static 'ocean-mid-mask :dword #xfffffffff0fcf6f7) + (new 'static 'ocean-mid-mask :dword #xfffffffff1f3f0f0) + (new 'static 'ocean-mid-mask :dword #xfffffffff0f0f1f0) + (new 'static 'ocean-mid-mask :dword #xf0ffffffffffffff) + (new 'static 'ocean-mid-mask :dword #x707078fffff7f7f) + (new 'static 'ocean-mid-mask :dword #x4) + (new 'static 'ocean-mid-mask :dword #x80c0c0c0c0) + (new 'static 'ocean-mid-mask :dword #x1031fffffff) + (new 'static 'ocean-mid-mask :dword #xf8f8f87879070707) + (new 'static 'ocean-mid-mask :dword #x1f1f1f1800000000) + (new 'static 'ocean-mid-mask :dword #x8080808090f8f8) + (new 'static 'ocean-mid-mask :dword #x103071f1f1f1f) + (new 'static 'ocean-mid-mask) + ) + ) + ) + +(define *ocean-spheres-village2* + (new 'static 'ocean-spheres + :spheres + (new 'static 'inline-array sphere 36 + (new 'static 'sphere :x -6320128.0 :z -14385152.0 :w 2224365.5) + (new 'static 'sphere :x -3174400.0 :z -14385152.0 :w 2224365.5) + (new 'static 'sphere :x -28672.0 :z -14385152.0 :w 2224365.5) + (new 'static 'sphere :x 3117056.0 :z -14385152.0 :w 2224365.5) + (new 'static 'sphere :x 6262784.0 :z -14385152.0 :w 2224365.5) + (new 'static 'sphere :x 9408512.0 :z -14385152.0 :w 2224365.5) + (new 'static 'sphere :x -6320128.0 :z -11239424.0 :w 2224365.5) + (new 'static 'sphere :x -3174400.0 :z -11239424.0 :w 2224365.5) + (new 'static 'sphere :x -28672.0 :z -11239424.0 :w 2224365.5) + (new 'static 'sphere :x 3117056.0 :z -11239424.0 :w 2224365.5) + (new 'static 'sphere :x 6262784.0 :z -11239424.0 :w 2224365.5) + (new 'static 'sphere :x 9408512.0 :z -11239424.0 :w 2224365.5) + (new 'static 'sphere :x -6320128.0 :z -8093696.0 :w 2224365.5) + (new 'static 'sphere :x -3174400.0 :z -8093696.0 :w 2224365.5) + (new 'static 'sphere :x -28672.0 :z -8093696.0 :w 2224365.5) + (new 'static 'sphere :x 3117056.0 :z -8093696.0 :w 2224365.5) + (new 'static 'sphere :x 6262784.0 :z -8093696.0 :w 2224365.5) + (new 'static 'sphere :x 9408512.0 :z -8093696.0 :w 2224365.5) + (new 'static 'sphere :x -6320128.0 :z -4947968.0 :w 2224365.5) + (new 'static 'sphere :x -3174400.0 :z -4947968.0 :w 2224365.5) + (new 'static 'sphere :x -28672.0 :z -4947968.0 :w 2224365.5) + (new 'static 'sphere :x 3117056.0 :z -4947968.0 :w 2224365.5) + (new 'static 'sphere :x 6262784.0 :z -4947968.0 :w 2224365.5) + (new 'static 'sphere :x 9408512.0 :z -4947968.0 :w 2224365.5) + (new 'static 'sphere :x -6320128.0 :z -1802240.0 :w 2224365.5) + (new 'static 'sphere :x -3174400.0 :z -1802240.0 :w 2224365.5) + (new 'static 'sphere :x -28672.0 :z -1802240.0 :w 2224365.5) + (new 'static 'sphere :x 3117056.0 :z -1802240.0 :w 2224365.5) + (new 'static 'sphere :x 6262784.0 :z -1802240.0 :w 2224365.5) + (new 'static 'sphere :x 9408512.0 :z -1802240.0 :w 2224365.5) + (new 'static 'sphere :x -6320128.0 :z 1343488.0 :w 2224365.5) + (new 'static 'sphere :x -3174400.0 :z 1343488.0 :w 2224365.5) + (new 'static 'sphere :x -28672.0 :z 1343488.0 :w 2224365.5) + (new 'static 'sphere :x 3117056.0 :z 1343488.0 :w 2224365.5) + (new 'static 'sphere :x 6262784.0 :z 1343488.0 :w 2224365.5) + (new 'static 'sphere :x 9408512.0 :z 1343488.0 :w 2224365.5) + ) + ) + ) + +(define *ocean-colors-village2* + (new 'static 'ocean-colors + :colors + (new 'static 'array rgba 2548 + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x3d :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3c :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x25 :g #x4d :b #x50 :a #x80) + (new 'static 'rgba :r #x23 :g #x47 :b #x4d :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #x23 :g #x3f :b #x49 :a #x80) + (new 'static 'rgba :r #x22 :g #x3f :b #x49 :a #x80) + (new 'static 'rgba :r #x22 :g #x3e :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x3d :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3c :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x21 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #x23 :g #x3f :b #x4a :a #x80) + (new 'static 'rgba :r #x23 :g #x40 :b #x4a :a #x80) + (new 'static 'rgba :r #x23 :g #x41 :b #x4b :a #x80) + (new 'static 'rgba :r #x22 :g #x41 :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x41 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x40 :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x3f :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x3d :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x3d :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x40 :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x42 :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x42 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x45 :b #x4b :a #x80) + (new 'static 'rgba :r #x1f :g #x45 :b #x4a :a #x80) + (new 'static 'rgba :r #x1f :g #x45 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x44 :b #x4c :a #x80) + (new 'static 'rgba :r #x20 :g #x44 :b #x4b :a #x80) + (new 'static 'rgba :r #x20 :g #x47 :b #x4b :a #x80) + (new 'static 'rgba :r #x20 :g #x47 :b #x4c :a #x80) + (new 'static 'rgba :r #x21 :g #x49 :b #x4d :a #x80) + (new 'static 'rgba :r #x20 :g #x48 :b #x4c :a #x80) + (new 'static 'rgba :r #x20 :g #x47 :b #x4b :a #x80) + (new 'static 'rgba :r #x1f :g #x43 :b #x4b :a #x80) + (new 'static 'rgba :r #x1f :g #x45 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x42 :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x42 :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x41 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x40 :b #x48 :a #x80) + (new 'static 'rgba :r #x21 :g #x3f :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x22 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x3a :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x3c :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x41 :b #x4a :a #x80) + (new 'static 'rgba :r #x22 :g #x42 :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x43 :b #x4c :a #x80) + (new 'static 'rgba :r #x20 :g #x43 :b #x4b :a #x80) + (new 'static 'rgba :r #x1e :g #x44 :b #x4a :a #x80) + (new 'static 'rgba :r #x1e :g #x42 :b #x4a :a #x80) + (new 'static 'rgba :r #x1d :g #x42 :b #x49 :a #x80) + (new 'static 'rgba :r #x1d :g #x44 :b #x4a :a #x80) + (new 'static 'rgba :r #x1d :g #x44 :b #x4a :a #x80) + (new 'static 'rgba :r #x1d :g #x44 :b #x4b :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x4b :a #x80) + (new 'static 'rgba :r #x1c :g #x49 :b #x4d :a #x80) + (new 'static 'rgba :r #x1d :g #x4e :b #x4f :a #x80) + (new 'static 'rgba :r #x1d :g #x50 :b #x4f :a #x80) + (new 'static 'rgba :r #x1e :g #x51 :b #x50 :a #x80) + (new 'static 'rgba :r #x1e :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x1e :g #x51 :b #x51 :a #x80) + (new 'static 'rgba :r #x1e :g #x51 :b #x4e :a #x80) + (new 'static 'rgba :r #x20 :g #x51 :b #x52 :a #x80) + (new 'static 'rgba :r #x20 :g #x53 :b #x51 :a #x80) + (new 'static 'rgba :r #x22 :g #x53 :b #x51 :a #x80) + (new 'static 'rgba :r #x21 :g #x53 :b #x52 :a #x80) + (new 'static 'rgba :r #x20 :g #x50 :b #x52 :a #x80) + (new 'static 'rgba :r #x1f :g #x51 :b #x50 :a #x80) + (new 'static 'rgba :r #x1f :g #x4f :b #x51 :a #x80) + (new 'static 'rgba :r #x1e :g #x51 :b #x50 :a #x80) + (new 'static 'rgba :r #x1f :g #x50 :b #x52 :a #x80) + (new 'static 'rgba :r #x1f :g #x4e :b #x50 :a #x80) + (new 'static 'rgba :r #x1e :g #x4d :b #x4e :a #x80) + (new 'static 'rgba :r #x20 :g #x4d :b #x4e :a #x80) + (new 'static 'rgba :r #x21 :g #x44 :b #x4c :a #x80) + (new 'static 'rgba :r #x22 :g #x40 :b #x4a :a #x80) + (new 'static 'rgba :r #x22 :g #x3f :b #x49 :a #x80) + (new 'static 'rgba :r #x22 :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #x23 :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #x23 :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x22 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x21 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x31 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1e :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x1e :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x40 :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x41 :b #x4a :a #x80) + (new 'static 'rgba :r #x1f :g #x42 :b #x4a :a #x80) + (new 'static 'rgba :r #x1d :g #x45 :b #x4a :a #x80) + (new 'static 'rgba :r #x1b :g #x44 :b #x4a :a #x80) + (new 'static 'rgba :r #x1a :g #x44 :b #x49 :a #x80) + (new 'static 'rgba :r #x19 :g #x43 :b #x49 :a #x80) + (new 'static 'rgba :r #x19 :g #x44 :b #x48 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x48 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x4a :a #x80) + (new 'static 'rgba :r #x19 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x19 :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x1b :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x1d :g #x51 :b #x4e :a #x80) + (new 'static 'rgba :r #x1e :g #x50 :b #x4b :a #x80) + (new 'static 'rgba :r #x1d :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x1f :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x20 :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x21 :g #x53 :b #x51 :a #x80) + (new 'static 'rgba :r #x23 :g #x54 :b #x50 :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x52 :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x54 :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x54 :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x53 :a #x80) + (new 'static 'rgba :r #x24 :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x23 :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x23 :g #x52 :b #x52 :a #x80) + (new 'static 'rgba :r #x23 :g #x53 :b #x51 :a #x80) + (new 'static 'rgba :r #x20 :g #x52 :b #x4e :a #x80) + (new 'static 'rgba :r #x1e :g #x51 :b #x4d :a #x80) + (new 'static 'rgba :r #x1d :g #x50 :b #x50 :a #x80) + (new 'static 'rgba :r #x1c :g #x4f :b #x4f :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x4e :a #x80) + (new 'static 'rgba :r #x20 :g #x47 :b #x4d :a #x80) + (new 'static 'rgba :r #x23 :g #x44 :b #x4c :a #x80) + (new 'static 'rgba :r #x23 :g #x40 :b #x4b :a #x80) + (new 'static 'rgba :r #x23 :g #x3b :b #x4a :a #x80) + (new 'static 'rgba :r #x22 :g #x37 :b #x47 :a #x80) + (new 'static 'rgba :r #x22 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1e :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x1d :g #x3a :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x3d :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #x1e :g #x41 :b #x48 :a #x80) + (new 'static 'rgba :r #x1b :g #x43 :b #x48 :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x48 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x48 :a #x80) + (new 'static 'rgba :r #x16 :g #x44 :b #x47 :a #x80) + (new 'static 'rgba :r #x16 :g #x45 :b #x47 :a #x80) + (new 'static 'rgba :r #x16 :g #x46 :b #x47 :a #x80) + (new 'static 'rgba :r #x15 :g #x47 :b #x46 :a #x80) + (new 'static 'rgba :r #x15 :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x17 :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x18 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x1b :g #x4e :b #x4b :a #x80) + (new 'static 'rgba :r #x1d :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x1d :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x1f :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x21 :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x21 :g #x52 :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x4f :a #x80) + (new 'static 'rgba :r #x26 :g #x52 :b #x53 :a #x80) + (new 'static 'rgba :r #x28 :g #x54 :b #x51 :a #x80) + (new 'static 'rgba :r #x28 :g #x54 :b #x54 :a #x80) + (new 'static 'rgba :r #x29 :g #x55 :b #x52 :a #x80) + (new 'static 'rgba :r #x29 :g #x55 :b #x53 :a #x80) + (new 'static 'rgba :r #x28 :g #x55 :b #x50 :a #x80) + (new 'static 'rgba :r #x28 :g #x55 :b #x50 :a #x80) + (new 'static 'rgba :r #x28 :g #x54 :b #x51 :a #x80) + (new 'static 'rgba :r #x27 :g #x54 :b #x52 :a #x80) + (new 'static 'rgba :r #x25 :g #x52 :b #x52 :a #x80) + (new 'static 'rgba :r #x23 :g #x52 :b #x4f :a #x80) + (new 'static 'rgba :r #x22 :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x20 :g #x52 :b #x4e :a #x80) + (new 'static 'rgba :r #x1e :g #x51 :b #x4d :a #x80) + (new 'static 'rgba :r #x1d :g #x4f :b #x4f :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x4e :a #x80) + (new 'static 'rgba :r #x22 :g #x44 :b #x4d :a #x80) + (new 'static 'rgba :r #x23 :g #x3f :b #x4c :a #x80) + (new 'static 'rgba :r #x22 :g #x3a :b #x48 :a #x80) + (new 'static 'rgba :r #x25 :g #x51 :b #x53 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x43 :a #x80) + (new 'static 'rgba :r #x1e :g #x3b :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x3f :b #x48 :a #x80) + (new 'static 'rgba :r #x1d :g #x41 :b #x47 :a #x80) + (new 'static 'rgba :r #x1a :g #x43 :b #x47 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x47 :a #x80) + (new 'static 'rgba :r #x16 :g #x45 :b #x47 :a #x80) + (new 'static 'rgba :r #x14 :g #x47 :b #x44 :a #x80) + (new 'static 'rgba :r #x12 :g #x45 :b #x44 :a #x80) + (new 'static 'rgba :r #x12 :g #x43 :b #x45 :a #x80) + (new 'static 'rgba :r #x12 :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x12 :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x14 :g #x47 :b #x44 :a #x80) + (new 'static 'rgba :r #x15 :g #x4a :b #x46 :a #x80) + (new 'static 'rgba :r #x18 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x1a :g #x4c :b #x47 :a #x80) + (new 'static 'rgba :r #x1c :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x1e :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x1e :g #x4e :b #x4b :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x4d :a #x80) + (new 'static 'rgba :r #x22 :g #x4d :b #x4e :a #x80) + (new 'static 'rgba :r #x23 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x26 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x28 :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x29 :g #x54 :b #x53 :a #x80) + (new 'static 'rgba :r #x2b :g #x56 :b #x51 :a #x80) + (new 'static 'rgba :r #x29 :g #x53 :b #x50 :a #x80) + (new 'static 'rgba :r #x27 :g #x53 :b #x4e :a #x80) + (new 'static 'rgba :r #x27 :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x27 :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x28 :g #x52 :b #x50 :a #x80) + (new 'static 'rgba :r #x28 :g #x52 :b #x4f :a #x80) + (new 'static 'rgba :r #x27 :g #x51 :b #x52 :a #x80) + (new 'static 'rgba :r #x26 :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x23 :g #x51 :b #x4e :a #x80) + (new 'static 'rgba :r #x20 :g #x53 :b #x4e :a #x80) + (new 'static 'rgba :r #x1e :g #x52 :b #x4d :a #x80) + (new 'static 'rgba :r #x1c :g #x4f :b #x4f :a #x80) + (new 'static 'rgba :r #x1e :g #x4d :b #x4e :a #x80) + (new 'static 'rgba :r #x23 :g #x46 :b #x4e :a #x80) + (new 'static 'rgba :r #x23 :g #x3e :b #x4a :a #x80) + (new 'static 'rgba :r #x22 :g #x37 :b #x47 :a #x80) + (new 'static 'rgba :r #x22 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1e :g #x38 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x3e :b #x46 :a #x80) + (new 'static 'rgba :r #x1d :g #x44 :b #x49 :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x48 :a #x80) + (new 'static 'rgba :r #x18 :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x15 :g #x48 :b #x45 :a #x80) + (new 'static 'rgba :r #x13 :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x11 :g #x44 :b #x44 :a #x80) + (new 'static 'rgba :r #x10 :g #x43 :b #x43 :a #x80) + (new 'static 'rgba :r #xe :g #x42 :b #x41 :a #x80) + (new 'static 'rgba :r #x10 :g #x43 :b #x40 :a #x80) + (new 'static 'rgba :r #x1a :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x14 :g #x47 :b #x44 :a #x80) + (new 'static 'rgba :r #x16 :g #x47 :b #x44 :a #x80) + (new 'static 'rgba :r #x17 :g #x49 :b #x46 :a #x80) + (new 'static 'rgba :r #x18 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x19 :g #x4a :b #x46 :a #x80) + (new 'static 'rgba :r #x1d :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x1f :g #x4a :b #x4b :a #x80) + (new 'static 'rgba :r #x20 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x23 :g #x4e :b #x4b :a #x80) + (new 'static 'rgba :r #x24 :g #x4e :b #x4e :a #x80) + (new 'static 'rgba :r #x29 :g #x54 :b #x50 :a #x80) + (new 'static 'rgba :r #x31 :g #x59 :b #x54 :a #x80) + (new 'static 'rgba :r #x2f :g #x58 :b #x55 :a #x80) + (new 'static 'rgba :r #x29 :g #x54 :b #x51 :a #x80) + (new 'static 'rgba :r #x25 :g #x51 :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x4e :a #x80) + (new 'static 'rgba :r #x27 :g #x52 :b #x50 :a #x80) + (new 'static 'rgba :r #x2b :g #x55 :b #x51 :a #x80) + (new 'static 'rgba :r #x29 :g #x53 :b #x52 :a #x80) + (new 'static 'rgba :r #x27 :g #x50 :b #x51 :a #x80) + (new 'static 'rgba :r #x24 :g #x4f :b #x4e :a #x80) + (new 'static 'rgba :r #x21 :g #x4e :b #x4f :a #x80) + (new 'static 'rgba :r #x20 :g #x51 :b #x4b :a #x80) + (new 'static 'rgba :r #x1c :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x1b :g #x4d :b #x4f :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x4f :a #x80) + (new 'static 'rgba :r #x23 :g #x43 :b #x4c :a #x80) + (new 'static 'rgba :r #x21 :g #x3c :b #x48 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1e :g #x3a :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x46 :b #x4a :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x4d :a #x80) + (new 'static 'rgba :r #x18 :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x16 :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x15 :g #x49 :b #x45 :a #x80) + (new 'static 'rgba :r #x14 :g #x49 :b #x45 :a #x80) + (new 'static 'rgba :r #x12 :g #x45 :b #x44 :a #x80) + (new 'static 'rgba :r #x10 :g #x43 :b #x40 :a #x80) + (new 'static 'rgba :r #xf :g #x42 :b #x41 :a #x80) + (new 'static 'rgba :r #x10 :g #x45 :b #x41 :a #x80) + (new 'static 'rgba :r #x12 :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x14 :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x16 :g #x46 :b #x47 :a #x80) + (new 'static 'rgba :r #x17 :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x18 :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x19 :g #x48 :b #x44 :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x1b :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x1b :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x4c :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x4c :a #x80) + (new 'static 'rgba :r #x25 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x2e :g #x56 :b #x54 :a #x80) + (new 'static 'rgba :r #x2e :g #x55 :b #x52 :a #x80) + (new 'static 'rgba :r #x2b :g #x53 :b #x53 :a #x80) + (new 'static 'rgba :r #x23 :g #x4f :b #x49 :a #x80) + (new 'static 'rgba :r #x22 :g #x4f :b #x48 :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x4c :a #x80) + (new 'static 'rgba :r #x2b :g #x55 :b #x51 :a #x80) + (new 'static 'rgba :r #x2b :g #x55 :b #x52 :a #x80) + (new 'static 'rgba :r #x27 :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x23 :g #x4e :b #x4d :a #x80) + (new 'static 'rgba :r #x22 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x1c :g #x4f :b #x4a :a #x80) + (new 'static 'rgba :r #x1a :g #x4f :b #x4a :a #x80) + (new 'static 'rgba :r #x1b :g #x4c :b #x4e :a #x80) + (new 'static 'rgba :r #x20 :g #x47 :b #x4d :a #x80) + (new 'static 'rgba :r #x22 :g #x3f :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1e :g #x3c :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x4a :b #x4c :a #x80) + (new 'static 'rgba :r #x1c :g #x4d :b #x4e :a #x80) + (new 'static 'rgba :r #x19 :g #x4e :b #x4d :a #x80) + (new 'static 'rgba :r #x18 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x19 :g #x4c :b #x47 :a #x80) + (new 'static 'rgba :r #x17 :g #x48 :b #x48 :a #x80) + (new 'static 'rgba :r #x15 :g #x46 :b #x46 :a #x80) + (new 'static 'rgba :r #x12 :g #x45 :b #x41 :a #x80) + (new 'static 'rgba :r #x11 :g #x44 :b #x3f :a #x80) + (new 'static 'rgba :r #x12 :g #x44 :b #x41 :a #x80) + (new 'static 'rgba :r #x14 :g #x44 :b #x42 :a #x80) + (new 'static 'rgba :r #x15 :g #x45 :b #x41 :a #x80) + (new 'static 'rgba :r #x16 :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x45 :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x42 :a #x80) + (new 'static 'rgba :r #x1a :g #x46 :b #x43 :a #x80) + (new 'static 'rgba :r #x15 :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x4a :b #x49 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x4c :b #x4b :a #x80) + (new 'static 'rgba :r #x2b :g #x53 :b #x52 :a #x80) + (new 'static 'rgba :r #x25 :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x29 :g #x51 :b #x4e :a #x80) + (new 'static 'rgba :r #x28 :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x4f :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x22 :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x24 :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x25 :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x22 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x1e :g #x4e :b #x49 :a #x80) + (new 'static 'rgba :r #x1a :g #x4e :b #x4d :a #x80) + (new 'static 'rgba :r #x1a :g #x4e :b #x4d :a #x80) + (new 'static 'rgba :r #x1d :g #x47 :b #x4d :a #x80) + (new 'static 'rgba :r #x21 :g #x40 :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x39 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x42 :b #x49 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x4c :a #x80) + (new 'static 'rgba :r #x1b :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x19 :g #x4c :b #x4b :a #x80) + (new 'static 'rgba :r #x1a :g #x4a :b #x49 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x46 :a #x80) + (new 'static 'rgba :r #x16 :g #x43 :b #x44 :a #x80) + (new 'static 'rgba :r #x13 :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x15 :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x15 :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x45 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x42 :a #x80) + (new 'static 'rgba :r #x19 :g #x43 :b #x44 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x41 :a #x80) + (new 'static 'rgba :r #x1a :g #x46 :b #x43 :a #x80) + (new 'static 'rgba :r #x1b :g #x47 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x1d :g #x48 :b #x47 :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x25 :g #x4d :b #x49 :a #x80) + (new 'static 'rgba :r #x1d :g #x48 :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x22 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x25 :g #x4d :b #x4d :a #x80) + (new 'static 'rgba :r #x23 :g #x4d :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x4d :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x46 :a #x80) + (new 'static 'rgba :r #x27 :g #x52 :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x4e :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x1e :g #x4d :b #x49 :a #x80) + (new 'static 'rgba :r #x1b :g #x4e :b #x49 :a #x80) + (new 'static 'rgba :r #x18 :g #x4e :b #x47 :a #x80) + (new 'static 'rgba :r #x1a :g #x4a :b #x4c :a #x80) + (new 'static 'rgba :r #x1f :g #x41 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x39 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x40 :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x48 :b #x4c :a #x80) + (new 'static 'rgba :r #x1d :g #x4d :b #x4d :a #x80) + (new 'static 'rgba :r #x1d :g #x4d :b #x4d :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x49 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x48 :a #x80) + (new 'static 'rgba :r #x1b :g #x48 :b #x44 :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x43 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x43 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x44 :a #x80) + (new 'static 'rgba :r #x1a :g #x44 :b #x43 :a #x80) + (new 'static 'rgba :r #x1a :g #x43 :b #x44 :a #x80) + (new 'static 'rgba :r #x19 :g #x44 :b #x42 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x19 :g #x43 :b #x44 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x43 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x19 :g #x42 :b #x43 :a #x80) + (new 'static 'rgba :r #x18 :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x19 :g #x44 :b #x43 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x45 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x47 :a #x80) + (new 'static 'rgba :r #x1b :g #x43 :b #x46 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x44 :a #x80) + (new 'static 'rgba :r #x1b :g #x47 :b #x46 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x45 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x49 :b #x4a :a #x80) + (new 'static 'rgba :r #x26 :g #x4d :b #x4d :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x21 :g #x4d :b #x48 :a #x80) + (new 'static 'rgba :r #x28 :g #x52 :b #x4c :a #x80) + (new 'static 'rgba :r #x26 :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x23 :g #x4d :b #x4d :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x4a :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x49 :a #x80) + (new 'static 'rgba :r #x1c :g #x4d :b #x49 :a #x80) + (new 'static 'rgba :r #x19 :g #x4e :b #x4a :a #x80) + (new 'static 'rgba :r #x19 :g #x4b :b #x4c :a #x80) + (new 'static 'rgba :r #x1d :g #x45 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x31 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1d :g #x3a :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x3e :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x48 :b #x4b :a #x80) + (new 'static 'rgba :r #x20 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x20 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x1f :g #x4a :b #x49 :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x21 :g #x48 :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x1d :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x1b :g #x44 :b #x45 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x45 :a #x80) + (new 'static 'rgba :r #x19 :g #x44 :b #x42 :a #x80) + (new 'static 'rgba :r #x19 :g #x44 :b #x43 :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x16 :g #x42 :b #x41 :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x18 :g #x42 :b #x42 :a #x80) + (new 'static 'rgba :r #x17 :g #x42 :b #x3f :a #x80) + (new 'static 'rgba :r #x16 :g #x41 :b #x42 :a #x80) + (new 'static 'rgba :r #x14 :g #x40 :b #x41 :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x42 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x42 :a #x80) + (new 'static 'rgba :r #x14 :g #x43 :b #x41 :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x41 :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x44 :a #x80) + (new 'static 'rgba :r #x1d :g #x46 :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x47 :a #x80) + (new 'static 'rgba :r #x22 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x4a :a #x80) + (new 'static 'rgba :r #x1c :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x1a :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x19 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x1c :g #x48 :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x40 :b #x49 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1d :g #x39 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x41 :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x4c :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x51 :a #x80) + (new 'static 'rgba :r #x24 :g #x50 :b #x50 :a #x80) + (new 'static 'rgba :r #x25 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x25 :g #x4b :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x4d :b #x49 :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x1e :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x1a :g #x44 :b #x44 :a #x80) + (new 'static 'rgba :r #x16 :g #x42 :b #x41 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x42 :a #x80) + (new 'static 'rgba :r #x14 :g #x42 :b #x40 :a #x80) + (new 'static 'rgba :r #x16 :g #x43 :b #x41 :a #x80) + (new 'static 'rgba :r #x14 :g #x40 :b #x41 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x3f :a #x80) + (new 'static 'rgba :r #x10 :g #x41 :b #x3c :a #x80) + (new 'static 'rgba :r #xd :g #x3f :b #x3a :a #x80) + (new 'static 'rgba :r #xb :g #x3e :b #x3d :a #x80) + (new 'static 'rgba :r #xb :g #x3f :b #x3c :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x3d :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x40 :a #x80) + (new 'static 'rgba :r #x15 :g #x41 :b #x40 :a #x80) + (new 'static 'rgba :r #x18 :g #x43 :b #x43 :a #x80) + (new 'static 'rgba :r #x1a :g #x44 :b #x45 :a #x80) + (new 'static 'rgba :r #x1e :g #x47 :b #x46 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x49 :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x1e :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x1d :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x1b :g #x4d :b #x48 :a #x80) + (new 'static 'rgba :r #x1a :g #x4e :b #x4b :a #x80) + (new 'static 'rgba :r #x1a :g #x49 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1d :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x43 :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x49 :b #x4e :a #x80) + (new 'static 'rgba :r #x25 :g #x51 :b #x51 :a #x80) + (new 'static 'rgba :r #x27 :g #x51 :b #x52 :a #x80) + (new 'static 'rgba :r #x26 :g #x50 :b #x4f :a #x80) + (new 'static 'rgba :r #x27 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x28 :g #x4e :b #x4e :a #x80) + (new 'static 'rgba :r #x28 :g #x51 :b #x4d :a #x80) + (new 'static 'rgba :r #x28 :g #x51 :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x26 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x24 :g #x4d :b #x4c :a #x80) + (new 'static 'rgba :r #x23 :g #x4a :b #x4b :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x1f :g #x48 :b #x48 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x45 :a #x80) + (new 'static 'rgba :r #x17 :g #x44 :b #x42 :a #x80) + (new 'static 'rgba :r #x14 :g #x42 :b #x3f :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x43 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x40 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x3d :a #x80) + (new 'static 'rgba :r #xb :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #xa :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x8 :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x7 :g #x3c :b #x38 :a #x80) + (new 'static 'rgba :r #x8 :g #x3d :b #x3b :a #x80) + (new 'static 'rgba :r #x9 :g #x3c :b #x3b :a #x80) + (new 'static 'rgba :r #xb :g #x3e :b #x3d :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x3c :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x3d :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x1b :g #x45 :b #x45 :a #x80) + (new 'static 'rgba :r #x1c :g #x46 :b #x45 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x46 :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x1e :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x47 :a #x80) + (new 'static 'rgba :r #x1c :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x1a :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x19 :g #x49 :b #x4b :a #x80) + (new 'static 'rgba :r #x1f :g #x42 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x3d :b #x47 :a #x80) + (new 'static 'rgba :r #x23 :g #x45 :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x4b :b #x50 :a #x80) + (new 'static 'rgba :r #x27 :g #x51 :b #x52 :a #x80) + (new 'static 'rgba :r #x2a :g #x54 :b #x52 :a #x80) + (new 'static 'rgba :r #x2a :g #x53 :b #x50 :a #x80) + (new 'static 'rgba :r #x2b :g #x52 :b #x4f :a #x80) + (new 'static 'rgba :r #x2b :g #x52 :b #x4f :a #x80) + (new 'static 'rgba :r #x29 :g #x51 :b #x4d :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x28 :g #x51 :b #x4e :a #x80) + (new 'static 'rgba :r #x25 :g #x4d :b #x4c :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x48 :b #x49 :a #x80) + (new 'static 'rgba :r #x1e :g #x46 :b #x47 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x45 :a #x80) + (new 'static 'rgba :r #x17 :g #x44 :b #x43 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x40 :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x3f :a #x80) + (new 'static 'rgba :r #xd :g #x3e :b #x3b :a #x80) + (new 'static 'rgba :r #xb :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x7 :g #x3b :b #x3a :a #x80) + (new 'static 'rgba :r #x6 :g #x39 :b #x39 :a #x80) + (new 'static 'rgba :r #x5 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x39 :a #x80) + (new 'static 'rgba :r #x6 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x5 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x6 :g #x3b :b #x36 :a #x80) + (new 'static 'rgba :r #x9 :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x3e :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x40 :a #x80) + (new 'static 'rgba :r #x1a :g #x44 :b #x44 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x45 :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x1d :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x1a :g #x4e :b #x48 :a #x80) + (new 'static 'rgba :r #x1a :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x4c :a #x80) + (new 'static 'rgba :r #x21 :g #x3b :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #x24 :g #x4a :b #x4e :a #x80) + (new 'static 'rgba :r #x26 :g #x50 :b #x51 :a #x80) + (new 'static 'rgba :r #x2c :g #x56 :b #x54 :a #x80) + (new 'static 'rgba :r #x2f :g #x57 :b #x57 :a #x80) + (new 'static 'rgba :r #x2e :g #x56 :b #x52 :a #x80) + (new 'static 'rgba :r #x2c :g #x54 :b #x4f :a #x80) + (new 'static 'rgba :r #x2b :g #x52 :b #x4d :a #x80) + (new 'static 'rgba :r #x2c :g #x53 :b #x4e :a #x80) + (new 'static 'rgba :r #x2b :g #x53 :b #x4d :a #x80) + (new 'static 'rgba :r #x2c :g #x54 :b #x4f :a #x80) + (new 'static 'rgba :r #x27 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x29 :g #x51 :b #x4d :a #x80) + (new 'static 'rgba :r #x21 :g #x49 :b #x41 :a #x80) + (new 'static 'rgba :r #x27 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x22 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x44 :a #x80) + (new 'static 'rgba :r #x16 :g #x43 :b #x40 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x3e :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x3b :a #x80) + (new 'static 'rgba :r #xb :g #x3f :b #x3d :a #x80) + (new 'static 'rgba :r #x9 :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x7 :g #x3b :b #x3a :a #x80) + (new 'static 'rgba :r #x6 :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x5 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x6 :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #xb :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x40 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x42 :a #x80) + (new 'static 'rgba :r #x23 :g #x4c :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x4d :b #x48 :a #x80) + (new 'static 'rgba :r #x21 :g #x4d :b #x4c :a #x80) + (new 'static 'rgba :r #x22 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x20 :g #x4f :b #x4e :a #x80) + (new 'static 'rgba :r #x1d :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x1b :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x1e :g #x47 :b #x4d :a #x80) + (new 'static 'rgba :r #x21 :g #x3f :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x21 :g #x41 :b #x49 :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x50 :a #x80) + (new 'static 'rgba :r #x2c :g #x55 :b #x55 :a #x80) + (new 'static 'rgba :r #x31 :g #x5a :b #x58 :a #x80) + (new 'static 'rgba :r #x31 :g #x5a :b #x57 :a #x80) + (new 'static 'rgba :r #x30 :g #x58 :b #x51 :a #x80) + (new 'static 'rgba :r #x2d :g #x54 :b #x4a :a #x80) + (new 'static 'rgba :r #x29 :g #x4f :b #x47 :a #x80) + (new 'static 'rgba :r #x29 :g #x50 :b #x47 :a #x80) + (new 'static 'rgba :r #x2a :g #x51 :b #x4c :a #x80) + (new 'static 'rgba :r #x2c :g #x52 :b #x4d :a #x80) + (new 'static 'rgba :r #x2a :g #x52 :b #x4a :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x4b :a #x80) + (new 'static 'rgba :r #x28 :g #x51 :b #x4b :a #x80) + (new 'static 'rgba :r #x27 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x25 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x1d :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x16 :g #x44 :b #x41 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x3d :a #x80) + (new 'static 'rgba :r #xd :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x3b :a #x80) + (new 'static 'rgba :r #x7 :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x6 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x6 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x6 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x6 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x6 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x6 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x9 :g #x3d :b #x3b :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x3d :a #x80) + (new 'static 'rgba :r #x19 :g #x44 :b #x45 :a #x80) + (new 'static 'rgba :r #x27 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x26 :g #x50 :b #x4a :a #x80) + (new 'static 'rgba :r #x26 :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x25 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x25 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x23 :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x1f :g #x51 :b #x4e :a #x80) + (new 'static 'rgba :r #x1d :g #x50 :b #x50 :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x4e :a #x80) + (new 'static 'rgba :r #x22 :g #x43 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x41 :b #x49 :a #x80) + (new 'static 'rgba :r #x28 :g #x4b :b #x51 :a #x80) + (new 'static 'rgba :r #x2e :g #x56 :b #x58 :a #x80) + (new 'static 'rgba :r #x33 :g #x5a :b #x59 :a #x80) + (new 'static 'rgba :r #x33 :g #x59 :b #x53 :a #x80) + (new 'static 'rgba :r #x2f :g #x56 :b #x4a :a #x80) + (new 'static 'rgba :r #x29 :g #x4d :b #x3e :a #x80) + (new 'static 'rgba :r #x25 :g #x49 :b #x3a :a #x80) + (new 'static 'rgba :r #x24 :g #x49 :b #x3c :a #x80) + (new 'static 'rgba :r #x26 :g #x4b :b #x3f :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x3e :a #x80) + (new 'static 'rgba :r #x23 :g #x4a :b #x3e :a #x80) + (new 'static 'rgba :r #x24 :g #x4a :b #x42 :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x46 :a #x80) + (new 'static 'rgba :r #x23 :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x16 :g #x40 :b #x41 :a #x80) + (new 'static 'rgba :r #x17 :g #x44 :b #x44 :a #x80) + (new 'static 'rgba :r #x10 :g #x41 :b #x3d :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x3e :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x3b :a #x80) + (new 'static 'rgba :r #x7 :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x39 :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x6 :g #x2f :b #x35 :a #x80) + (new 'static 'rgba :r #x6 :g #x2b :b #x32 :a #x80) + (new 'static 'rgba :r #x7 :g #x2c :b #x34 :a #x80) + (new 'static 'rgba :r #x6 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x5 :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x8 :g #x3b :b #x3a :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x3f :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x25 :g #x4e :b #x4a :a #x80) + (new 'static 'rgba :r #x29 :g #x51 :b #x51 :a #x80) + (new 'static 'rgba :r #x2a :g #x50 :b #x51 :a #x80) + (new 'static 'rgba :r #x29 :g #x51 :b #x52 :a #x80) + (new 'static 'rgba :r #x28 :g #x52 :b #x50 :a #x80) + (new 'static 'rgba :r #x27 :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x50 :a #x80) + (new 'static 'rgba :r #x1e :g #x50 :b #x50 :a #x80) + (new 'static 'rgba :r #x1f :g #x50 :b #x51 :a #x80) + (new 'static 'rgba :r #x21 :g #x42 :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x22 :g #x3d :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x40 :b #x48 :a #x80) + (new 'static 'rgba :r #x27 :g #x4b :b #x52 :a #x80) + (new 'static 'rgba :r #x2f :g #x57 :b #x57 :a #x80) + (new 'static 'rgba :r #x32 :g #x5a :b #x55 :a #x80) + (new 'static 'rgba :r #x30 :g #x53 :b #x4a :a #x80) + (new 'static 'rgba :r #x2a :g #x4f :b #x3d :a #x80) + (new 'static 'rgba :r #x24 :g #x49 :b #x38 :a #x80) + (new 'static 'rgba :r #x21 :g #x45 :b #x31 :a #x80) + (new 'static 'rgba :r #x21 :g #x44 :b #x31 :a #x80) + (new 'static 'rgba :r #x1e :g #x43 :b #x31 :a #x80) + (new 'static 'rgba :r #x1d :g #x41 :b #x30 :a #x80) + (new 'static 'rgba :r #x1c :g #x42 :b #x30 :a #x80) + (new 'static 'rgba :r #x20 :g #x44 :b #x36 :a #x80) + (new 'static 'rgba :r #x23 :g #x4a :b #x45 :a #x80) + (new 'static 'rgba :r #x1e :g #x45 :b #x47 :a #x80) + (new 'static 'rgba :r #x27 :g #x4d :b #x4e :a #x80) + (new 'static 'rgba :r #x23 :g #x4a :b #x4b :a #x80) + (new 'static 'rgba :r #x1c :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x11 :g #x42 :b #x3f :a #x80) + (new 'static 'rgba :r #xd :g #x3f :b #x3d :a #x80) + (new 'static 'rgba :r #xa :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #x7 :g #x3b :b #x3b :a #x80) + (new 'static 'rgba :r #x6 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x7 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x6 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x1 :g #x16 :b #x23 :a #x80) + (new 'static 'rgba :r #x7 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x9 :g #x3b :b #x38 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x3f :a #x80) + (new 'static 'rgba :r #x1b :g #x47 :b #x44 :a #x80) + (new 'static 'rgba :r #x21 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x28 :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x2c :g #x55 :b #x52 :a #x80) + (new 'static 'rgba :r #x2a :g #x52 :b #x53 :a #x80) + (new 'static 'rgba :r #x2b :g #x55 :b #x52 :a #x80) + (new 'static 'rgba :r #x29 :g #x53 :b #x52 :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x20 :g #x52 :b #x4e :a #x80) + (new 'static 'rgba :r #x1e :g #x4f :b #x50 :a #x80) + (new 'static 'rgba :r #x20 :g #x46 :b #x4c :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x47 :a #x80) + (new 'static 'rgba :r #x25 :g #x4b :b #x51 :a #x80) + (new 'static 'rgba :r #x21 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #x28 :g #x4f :b #x52 :a #x80) + (new 'static 'rgba :r #x30 :g #x57 :b #x57 :a #x80) + (new 'static 'rgba :r #x30 :g #x55 :b #x48 :a #x80) + (new 'static 'rgba :r #x2b :g #x4e :b #x3b :a #x80) + (new 'static 'rgba :r #x25 :g #x47 :b #x35 :a #x80) + (new 'static 'rgba :r #x21 :g #x44 :b #x2c :a #x80) + (new 'static 'rgba :r #x1e :g #x3f :b #x2b :a #x80) + (new 'static 'rgba :r #x1d :g #x40 :b #x29 :a #x80) + (new 'static 'rgba :r #x1b :g #x3f :b #x2b :a #x80) + (new 'static 'rgba :r #x1c :g #x3e :b #x29 :a #x80) + (new 'static 'rgba :r #x1b :g #x3e :b #x2b :a #x80) + (new 'static 'rgba :r #x1e :g #x41 :b #x30 :a #x80) + (new 'static 'rgba :r #x27 :g #x4c :b #x45 :a #x80) + (new 'static 'rgba :r #x2b :g #x54 :b #x4f :a #x80) + (new 'static 'rgba :r #x29 :g #x51 :b #x51 :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x1d :g #x45 :b #x47 :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x44 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x40 :a #x80) + (new 'static 'rgba :r #xe :g #x41 :b #x3e :a #x80) + (new 'static 'rgba :r #xa :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x8 :g #x3b :b #x3b :a #x80) + (new 'static 'rgba :r #x6 :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x5 :g #x28 :b #x31 :a #x80) + (new 'static 'rgba :r #x6 :g #x2c :b #x33 :a #x80) + (new 'static 'rgba :r #x6 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x5 :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #x9 :g #x3d :b #x3b :a #x80) + (new 'static 'rgba :r #x14 :g #x44 :b #x41 :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x24 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x2b :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x31 :g #x57 :b #x57 :a #x80) + (new 'static 'rgba :r #x2b :g #x54 :b #x52 :a #x80) + (new 'static 'rgba :r #x2e :g #x57 :b #x55 :a #x80) + (new 'static 'rgba :r #x2b :g #x54 :b #x52 :a #x80) + (new 'static 'rgba :r #x27 :g #x54 :b #x54 :a #x80) + (new 'static 'rgba :r #x21 :g #x53 :b #x51 :a #x80) + (new 'static 'rgba :r #x1f :g #x52 :b #x52 :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x52 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #x22 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x21 :g #x42 :b #x4a :a #x80) + (new 'static 'rgba :r #x28 :g #x52 :b #x53 :a #x80) + (new 'static 'rgba :r #x30 :g #x57 :b #x53 :a #x80) + (new 'static 'rgba :r #x2e :g #x52 :b #x43 :a #x80) + (new 'static 'rgba :r #x27 :g #x49 :b #x37 :a #x80) + (new 'static 'rgba :r #x23 :g #x43 :b #x2d :a #x80) + (new 'static 'rgba :r #x1e :g #x40 :b #x2a :a #x80) + (new 'static 'rgba :r #x1d :g #x3e :b #x27 :a #x80) + (new 'static 'rgba :r #x1b :g #x3d :b #x24 :a #x80) + (new 'static 'rgba :r #x1a :g #x3d :b #x27 :a #x80) + (new 'static 'rgba :r #x18 :g #x3b :b #x23 :a #x80) + (new 'static 'rgba :r #x19 :g #x3d :b #x23 :a #x80) + (new 'static 'rgba :r #x1d :g #x40 :b #x2c :a #x80) + (new 'static 'rgba :r #x22 :g #x49 :b #x3f :a #x80) + (new 'static 'rgba :r #x28 :g #x52 :b #x4b :a #x80) + (new 'static 'rgba :r #x2b :g #x52 :b #x50 :a #x80) + (new 'static 'rgba :r #x25 :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x1f :g #x48 :b #x48 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x42 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x41 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x41 :a #x80) + (new 'static 'rgba :r #xb :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x9 :g #x3d :b #x3b :a #x80) + (new 'static 'rgba :r #x6 :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x6 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x6 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x7 :g #x30 :b #x36 :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x6 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x9 :g #x3d :b #x39 :a #x80) + (new 'static 'rgba :r #x16 :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x25 :g #x4e :b #x4b :a #x80) + (new 'static 'rgba :r #x2c :g #x53 :b #x50 :a #x80) + (new 'static 'rgba :r #x35 :g #x5a :b #x59 :a #x80) + (new 'static 'rgba :r #x2f :g #x57 :b #x55 :a #x80) + (new 'static 'rgba :r #x31 :g #x59 :b #x57 :a #x80) + (new 'static 'rgba :r #x2d :g #x56 :b #x56 :a #x80) + (new 'static 'rgba :r #x27 :g #x54 :b #x54 :a #x80) + (new 'static 'rgba :r #x22 :g #x54 :b #x52 :a #x80) + (new 'static 'rgba :r #x20 :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x52 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x21 :g #x3f :b #x4a :a #x80) + (new 'static 'rgba :r #x29 :g #x51 :b #x55 :a #x80) + (new 'static 'rgba :r #x2f :g #x55 :b #x4e :a #x80) + (new 'static 'rgba :r #x29 :g #x4c :b #x3c :a #x80) + (new 'static 'rgba :r #x24 :g #x45 :b #x30 :a #x80) + (new 'static 'rgba :r #x21 :g #x41 :b #x29 :a #x80) + (new 'static 'rgba :r #x1d :g #x3e :b #x26 :a #x80) + (new 'static 'rgba :r #x1b :g #x3d :b #x24 :a #x80) + (new 'static 'rgba :r #x19 :g #x3c :b #x21 :a #x80) + (new 'static 'rgba :r #x1a :g #x3c :b #x25 :a #x80) + (new 'static 'rgba :r #x1b :g #x3e :b #x26 :a #x80) + (new 'static 'rgba :r #x1c :g #x3f :b #x2a :a #x80) + (new 'static 'rgba :r #x1f :g #x42 :b #x30 :a #x80) + (new 'static 'rgba :r #x21 :g #x46 :b #x39 :a #x80) + (new 'static 'rgba :r #x27 :g #x4c :b #x45 :a #x80) + (new 'static 'rgba :r #x28 :g #x51 :b #x4b :a #x80) + (new 'static 'rgba :r #x26 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x1c :g #x45 :b #x46 :a #x80) + (new 'static 'rgba :r #x16 :g #x42 :b #x43 :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x3e :a #x80) + (new 'static 'rgba :r #xd :g #x3e :b #x3e :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x42 :a #x80) + (new 'static 'rgba :r #x8 :g #x3d :b #x38 :a #x80) + (new 'static 'rgba :r #x7 :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x6 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x5 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #xa :g #x3d :b #x3c :a #x80) + (new 'static 'rgba :r #x14 :g #x44 :b #x41 :a #x80) + (new 'static 'rgba :r #x1a :g #x46 :b #x43 :a #x80) + (new 'static 'rgba :r #x23 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x29 :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x34 :g #x58 :b #x57 :a #x80) + (new 'static 'rgba :r #x34 :g #x59 :b #x56 :a #x80) + (new 'static 'rgba :r #x2e :g #x56 :b #x54 :a #x80) + (new 'static 'rgba :r #x2c :g #x56 :b #x54 :a #x80) + (new 'static 'rgba :r #x28 :g #x55 :b #x55 :a #x80) + (new 'static 'rgba :r #x21 :g #x54 :b #x52 :a #x80) + (new 'static 'rgba :r #x1f :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x4e :a #x80) + (new 'static 'rgba :r #x21 :g #x3b :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1e :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x29 :g #x4c :b #x52 :a #x80) + (new 'static 'rgba :r #x30 :g #x57 :b #x50 :a #x80) + (new 'static 'rgba :r #x27 :g #x4a :b #x39 :a #x80) + (new 'static 'rgba :r #x21 :g #x42 :b #x2f :a #x80) + (new 'static 'rgba :r #x1f :g #x41 :b #x28 :a #x80) + (new 'static 'rgba :r #x1c :g #x3f :b #x29 :a #x80) + (new 'static 'rgba :r #x1d :g #x3f :b #x26 :a #x80) + (new 'static 'rgba :r #x1d :g #x40 :b #x27 :a #x80) + (new 'static 'rgba :r #x1d :g #x40 :b #x29 :a #x80) + (new 'static 'rgba :r #x1f :g #x43 :b #x31 :a #x80) + (new 'static 'rgba :r #x23 :g #x48 :b #x36 :a #x80) + (new 'static 'rgba :r #x23 :g #x48 :b #x3c :a #x80) + (new 'static 'rgba :r #x23 :g #x49 :b #x3d :a #x80) + (new 'static 'rgba :r #x23 :g #x4a :b #x40 :a #x80) + (new 'static 'rgba :r #x28 :g #x4f :b #x48 :a #x80) + (new 'static 'rgba :r #x28 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x48 :b #x48 :a #x80) + (new 'static 'rgba :r #x19 :g #x42 :b #x44 :a #x80) + (new 'static 'rgba :r #x14 :g #x40 :b #x41 :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x3e :a #x80) + (new 'static 'rgba :r #xb :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #xa :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x8 :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x6 :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x6 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x5 :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x5 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x6 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x7 :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #xd :g #x3f :b #x3c :a #x80) + (new 'static 'rgba :r #x15 :g #x41 :b #x41 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x44 :a #x80) + (new 'static 'rgba :r #x22 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x2a :g #x51 :b #x4c :a #x80) + (new 'static 'rgba :r #x2e :g #x54 :b #x51 :a #x80) + (new 'static 'rgba :r #x2e :g #x55 :b #x54 :a #x80) + (new 'static 'rgba :r #x2c :g #x54 :b #x54 :a #x80) + (new 'static 'rgba :r #x2a :g #x55 :b #x55 :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x53 :a #x80) + (new 'static 'rgba :r #x21 :g #x53 :b #x50 :a #x80) + (new 'static 'rgba :r #x1f :g #x52 :b #x52 :a #x80) + (new 'static 'rgba :r #x21 :g #x47 :b #x4d :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x3a :b #x44 :a #x80) + (new 'static 'rgba :r #x27 :g #x49 :b #x4e :a #x80) + (new 'static 'rgba :r #x2e :g #x55 :b #x50 :a #x80) + (new 'static 'rgba :r #x26 :g #x4a :b #x3b :a #x80) + (new 'static 'rgba :r #x22 :g #x47 :b #x32 :a #x80) + (new 'static 'rgba :r #x20 :g #x43 :b #x2c :a #x80) + (new 'static 'rgba :r #x1f :g #x42 :b #x2c :a #x80) + (new 'static 'rgba :r #x20 :g #x44 :b #x2d :a #x80) + (new 'static 'rgba :r #x20 :g #x44 :b #x30 :a #x80) + (new 'static 'rgba :r #x22 :g #x46 :b #x34 :a #x80) + (new 'static 'rgba :r #x26 :g #x49 :b #x3d :a #x80) + (new 'static 'rgba :r #x29 :g #x4f :b #x45 :a #x80) + (new 'static 'rgba :r #x28 :g #x4f :b #x45 :a #x80) + (new 'static 'rgba :r #x26 :g #x4d :b #x46 :a #x80) + (new 'static 'rgba :r #x25 :g #x4e :b #x45 :a #x80) + (new 'static 'rgba :r #x27 :g #x4f :b #x49 :a #x80) + (new 'static 'rgba :r #x27 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x17 :g #x40 :b #x41 :a #x80) + (new 'static 'rgba :r #x26 :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x20 :g #x48 :b #x49 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x41 :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x41 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x3c :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x3f :a #x80) + (new 'static 'rgba :r #xb :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x8 :g #x3d :b #x38 :a #x80) + (new 'static 'rgba :r #x7 :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x3e :a #x80) + (new 'static 'rgba :r #x6 :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #x8 :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #xb :g #x3d :b #x3d :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x3c :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x43 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x43 :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x26 :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x4f :a #x80) + (new 'static 'rgba :r #x29 :g #x53 :b #x50 :a #x80) + (new 'static 'rgba :r #x29 :g #x53 :b #x51 :a #x80) + (new 'static 'rgba :r #x27 :g #x53 :b #x51 :a #x80) + (new 'static 'rgba :r #x24 :g #x53 :b #x53 :a #x80) + (new 'static 'rgba :r #x1f :g #x53 :b #x4e :a #x80) + (new 'static 'rgba :r #x1f :g #x4e :b #x51 :a #x80) + (new 'static 'rgba :r #x22 :g #x46 :b #x4d :a #x80) + (new 'static 'rgba :r #x22 :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #x21 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x37 :b #x43 :a #x80) + (new 'static 'rgba :r #x25 :g #x49 :b #x4d :a #x80) + (new 'static 'rgba :r #x2d :g #x53 :b #x4d :a #x80) + (new 'static 'rgba :r #x28 :g #x4d :b #x40 :a #x80) + (new 'static 'rgba :r #x26 :g #x4a :b #x39 :a #x80) + (new 'static 'rgba :r #x25 :g #x48 :b #x37 :a #x80) + (new 'static 'rgba :r #x24 :g #x47 :b #x35 :a #x80) + (new 'static 'rgba :r #x24 :g #x47 :b #x35 :a #x80) + (new 'static 'rgba :r #x26 :g #x49 :b #x3b :a #x80) + (new 'static 'rgba :r #x27 :g #x4c :b #x3d :a #x80) + (new 'static 'rgba :r #x29 :g #x4e :b #x46 :a #x80) + (new 'static 'rgba :r #x2c :g #x52 :b #x4b :a #x80) + (new 'static 'rgba :r #x2c :g #x54 :b #x4c :a #x80) + (new 'static 'rgba :r #x2b :g #x53 :b #x4b :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x29 :g #x50 :b #x4b :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x22 :g #x4a :b #x49 :a #x80) + (new 'static 'rgba :r #x2b :g #x51 :b #x4e :a #x80) + (new 'static 'rgba :r #x2a :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x48 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x45 :a #x80) + (new 'static 'rgba :r #x15 :g #x41 :b #x3e :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x3e :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x3f :a #x80) + (new 'static 'rgba :r #xd :g #x3f :b #x3a :a #x80) + (new 'static 'rgba :r #xc :g #x3f :b #x3a :a #x80) + (new 'static 'rgba :r #xb :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #xc :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #xd :g #x3f :b #x3c :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x3e :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x41 :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x22 :g #x4a :b #x46 :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x26 :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x26 :g #x51 :b #x4d :a #x80) + (new 'static 'rgba :r #x26 :g #x51 :b #x51 :a #x80) + (new 'static 'rgba :r #x23 :g #x51 :b #x51 :a #x80) + (new 'static 'rgba :r #x21 :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x1e :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x1f :g #x4f :b #x51 :a #x80) + (new 'static 'rgba :r #x23 :g #x44 :b #x4c :a #x80) + (new 'static 'rgba :r #x22 :g #x3b :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x37 :b #x42 :a #x80) + (new 'static 'rgba :r #x24 :g #x49 :b #x4d :a #x80) + (new 'static 'rgba :r #x2d :g #x56 :b #x50 :a #x80) + (new 'static 'rgba :r #x2d :g #x53 :b #x47 :a #x80) + (new 'static 'rgba :r #x2a :g #x50 :b #x42 :a #x80) + (new 'static 'rgba :r #x28 :g #x4d :b #x40 :a #x80) + (new 'static 'rgba :r #x27 :g #x4c :b #x3d :a #x80) + (new 'static 'rgba :r #x28 :g #x4e :b #x3e :a #x80) + (new 'static 'rgba :r #x29 :g #x4e :b #x42 :a #x80) + (new 'static 'rgba :r #x2b :g #x50 :b #x47 :a #x80) + (new 'static 'rgba :r #x2a :g #x4f :b #x49 :a #x80) + (new 'static 'rgba :r #x2c :g #x54 :b #x4c :a #x80) + (new 'static 'rgba :r #x29 :g #x4f :b #x47 :a #x80) + (new 'static 'rgba :r #x2a :g #x52 :b #x50 :a #x80) + (new 'static 'rgba :r #x29 :g #x50 :b #x4b :a #x80) + (new 'static 'rgba :r #x2c :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x2a :g #x51 :b #x4d :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x28 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x29 :g #x50 :b #x4b :a #x80) + (new 'static 'rgba :r #x27 :g #x4e :b #x4d :a #x80) + (new 'static 'rgba :r #x22 :g #x4a :b #x49 :a #x80) + (new 'static 'rgba :r #x19 :g #x43 :b #x43 :a #x80) + (new 'static 'rgba :r #x17 :g #x42 :b #x42 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x41 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x41 :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x41 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x41 :a #x80) + (new 'static 'rgba :r #x13 :g #x42 :b #x41 :a #x80) + (new 'static 'rgba :r #x14 :g #x40 :b #x41 :a #x80) + (new 'static 'rgba :r #x17 :g #x42 :b #x42 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x44 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x49 :a #x80) + (new 'static 'rgba :r #x23 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x23 :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x23 :g #x4d :b #x4d :a #x80) + (new 'static 'rgba :r #x22 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x1f :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x1c :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x1c :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x20 :g #x4a :b #x4f :a #x80) + (new 'static 'rgba :r #x23 :g #x40 :b #x4a :a #x80) + (new 'static 'rgba :r #x22 :g #x3a :b #x47 :a #x80) + (new 'static 'rgba :r #x22 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x39 :b #x43 :a #x80) + (new 'static 'rgba :r #x23 :g #x49 :b #x4d :a #x80) + (new 'static 'rgba :r #x2f :g #x59 :b #x53 :a #x80) + (new 'static 'rgba :r #x32 :g #x5a :b #x52 :a #x80) + (new 'static 'rgba :r #x2f :g #x56 :b #x4e :a #x80) + (new 'static 'rgba :r #x2d :g #x52 :b #x4c :a #x80) + (new 'static 'rgba :r #x2b :g #x51 :b #x46 :a #x80) + (new 'static 'rgba :r #x2b :g #x51 :b #x48 :a #x80) + (new 'static 'rgba :r #x2b :g #x52 :b #x4c :a #x80) + (new 'static 'rgba :r #x27 :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x28 :g #x4d :b #x44 :a #x80) + (new 'static 'rgba :r #x26 :g #x4d :b #x49 :a #x80) + (new 'static 'rgba :r #x29 :g #x52 :b #x4e :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x26 :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x2c :g #x53 :b #x50 :a #x80) + (new 'static 'rgba :r #x2b :g #x53 :b #x4d :a #x80) + (new 'static 'rgba :r #x26 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x29 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x2b :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x25 :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x46 :b #x47 :a #x80) + (new 'static 'rgba :r #x1d :g #x47 :b #x46 :a #x80) + (new 'static 'rgba :r #x1b :g #x45 :b #x44 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x1b :g #x44 :b #x45 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x43 :a #x80) + (new 'static 'rgba :r #x1b :g #x45 :b #x45 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x45 :a #x80) + (new 'static 'rgba :r #x1c :g #x46 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x4a :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x4a :a #x80) + (new 'static 'rgba :r #x1f :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x24 :g #x4f :b #x4e :a #x80) + (new 'static 'rgba :r #x1c :g #x4e :b #x4a :a #x80) + (new 'static 'rgba :r #x1a :g #x4e :b #x49 :a #x80) + (new 'static 'rgba :r #x1b :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x20 :g #x48 :b #x4c :a #x80) + (new 'static 'rgba :r #x23 :g #x3d :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x3a :b #x45 :a #x80) + (new 'static 'rgba :r #x24 :g #x45 :b #x4c :a #x80) + (new 'static 'rgba :r #x2e :g #x59 :b #x58 :a #x80) + (new 'static 'rgba :r #x33 :g #x5c :b #x59 :a #x80) + (new 'static 'rgba :r #x31 :g #x5a :b #x56 :a #x80) + (new 'static 'rgba :r #x30 :g #x58 :b #x53 :a #x80) + (new 'static 'rgba :r #x2c :g #x54 :b #x4e :a #x80) + (new 'static 'rgba :r #x24 :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x28 :g #x51 :b #x4e :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x27 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x25 :g #x4d :b #x4c :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x49 :b #x4a :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x47 :a #x80) + (new 'static 'rgba :r #x28 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x29 :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x23 :g #x4d :b #x48 :a #x80) + (new 'static 'rgba :r #x27 :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x26 :g #x4e :b #x4a :a #x80) + (new 'static 'rgba :r #x28 :g #x4e :b #x4d :a #x80) + (new 'static 'rgba :r #x27 :g #x4e :b #x4b :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x49 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x47 :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x48 :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x46 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x49 :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x45 :a #x80) + (new 'static 'rgba :r #x1d :g #x48 :b #x45 :a #x80) + (new 'static 'rgba :r #x1e :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x1b :g #x48 :b #x49 :a #x80) + (new 'static 'rgba :r #x1a :g #x4b :b #x47 :a #x80) + (new 'static 'rgba :r #x18 :g #x4d :b #x49 :a #x80) + (new 'static 'rgba :r #x18 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x41 :b #x4b :a #x80) + (new 'static 'rgba :r #x22 :g #x3c :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1b :g #x39 :b #x43 :a #x80) + (new 'static 'rgba :r #x23 :g #x44 :b #x4a :a #x80) + (new 'static 'rgba :r #x2d :g #x55 :b #x57 :a #x80) + (new 'static 'rgba :r #x32 :g #x5b :b #x5a :a #x80) + (new 'static 'rgba :r #x32 :g #x5b :b #x55 :a #x80) + (new 'static 'rgba :r #x30 :g #x57 :b #x55 :a #x80) + (new 'static 'rgba :r #x2d :g #x54 :b #x50 :a #x80) + (new 'static 'rgba :r #x2b :g #x53 :b #x50 :a #x80) + (new 'static 'rgba :r #x29 :g #x52 :b #x4f :a #x80) + (new 'static 'rgba :r #x28 :g #x51 :b #x4c :a #x80) + (new 'static 'rgba :r #x26 :g #x4e :b #x4d :a #x80) + (new 'static 'rgba :r #x21 :g #x4c :b #x47 :a #x80) + (new 'static 'rgba :r #x1e :g #x47 :b #x48 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x27 :g #x4e :b #x4d :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x20 :g #x47 :b #x48 :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x46 :a #x80) + (new 'static 'rgba :r #x26 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x1c :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x24 :g #x4d :b #x49 :a #x80) + (new 'static 'rgba :r #x26 :g #x4d :b #x49 :a #x80) + (new 'static 'rgba :r #x26 :g #x4f :b #x4b :a #x80) + (new 'static 'rgba :r #x25 :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x1d :g #x47 :b #x48 :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x22 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x1a :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x47 :a #x80) + (new 'static 'rgba :r #x1d :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x17 :g #x4a :b #x46 :a #x80) + (new 'static 'rgba :r #x16 :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x17 :g #x4a :b #x4a :a #x80) + (new 'static 'rgba :r #x1c :g #x45 :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x40 :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x26 :g #x52 :b #x54 :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x3a :b #x44 :a #x80) + (new 'static 'rgba :r #x22 :g #x45 :b #x4b :a #x80) + (new 'static 'rgba :r #x2e :g #x56 :b #x54 :a #x80) + (new 'static 'rgba :r #x34 :g #x5d :b #x5a :a #x80) + (new 'static 'rgba :r #x32 :g #x5a :b #x55 :a #x80) + (new 'static 'rgba :r #x2f :g #x56 :b #x52 :a #x80) + (new 'static 'rgba :r #x2b :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x29 :g #x50 :b #x4f :a #x80) + (new 'static 'rgba :r #x24 :g #x4d :b #x49 :a #x80) + (new 'static 'rgba :r #x1b :g #x48 :b #x44 :a #x80) + (new 'static 'rgba :r #x23 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x1e :g #x45 :b #x46 :a #x80) + (new 'static 'rgba :r #x1e :g #x47 :b #x44 :a #x80) + (new 'static 'rgba :r #x1a :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x42 :a #x80) + (new 'static 'rgba :r #x1b :g #x44 :b #x45 :a #x80) + (new 'static 'rgba :r #x1c :g #x46 :b #x46 :a #x80) + (new 'static 'rgba :r #x1e :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x48 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x49 :a #x80) + (new 'static 'rgba :r #x1e :g #x46 :b #x47 :a #x80) + (new 'static 'rgba :r #x1e :g #x47 :b #x44 :a #x80) + (new 'static 'rgba :r #x24 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x27 :g #x4f :b #x4e :a #x80) + (new 'static 'rgba :r #x2b :g #x51 :b #x50 :a #x80) + (new 'static 'rgba :r #x2b :g #x51 :b #x50 :a #x80) + (new 'static 'rgba :r #x2b :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x29 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x1d :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x18 :g #x43 :b #x44 :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x43 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x44 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x46 :a #x80) + (new 'static 'rgba :r #x15 :g #x48 :b #x44 :a #x80) + (new 'static 'rgba :r #x14 :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x17 :g #x49 :b #x4b :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x3f :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x22 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1e :g #x3c :b #x46 :a #x80) + (new 'static 'rgba :r #x26 :g #x4a :b #x4f :a #x80) + (new 'static 'rgba :r #x30 :g #x59 :b #x58 :a #x80) + (new 'static 'rgba :r #x35 :g #x5c :b #x58 :a #x80) + (new 'static 'rgba :r #x31 :g #x59 :b #x56 :a #x80) + (new 'static 'rgba :r #x2f :g #x55 :b #x51 :a #x80) + (new 'static 'rgba :r #x32 :g #x56 :b #x52 :a #x80) + (new 'static 'rgba :r #x2b :g #x51 :b #x4d :a #x80) + (new 'static 'rgba :r #x28 :g #x4f :b #x4b :a #x80) + (new 'static 'rgba :r #x23 :g #x4c :b #x4b :a #x80) + (new 'static 'rgba :r #x22 :g #x48 :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x40 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x41 :a #x80) + (new 'static 'rgba :r #x15 :g #x41 :b #x41 :a #x80) + (new 'static 'rgba :r #x1d :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x16 :g #x42 :b #x42 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x42 :a #x80) + (new 'static 'rgba :r #x19 :g #x44 :b #x44 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x1d :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x26 :g #x4e :b #x4e :a #x80) + (new 'static 'rgba :r #x29 :g #x51 :b #x4e :a #x80) + (new 'static 'rgba :r #x27 :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x26 :g #x4d :b #x4e :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x1f :g #x47 :b #x48 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x42 :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x46 :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x47 :a #x80) + (new 'static 'rgba :r #x15 :g #x48 :b #x44 :a #x80) + (new 'static 'rgba :r #x14 :g #x48 :b #x47 :a #x80) + (new 'static 'rgba :r #x15 :g #x48 :b #x48 :a #x80) + (new 'static 'rgba :r #x1a :g #x46 :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x43 :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x3b :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x23 :g #x46 :b #x4a :a #x80) + (new 'static 'rgba :r #x2f :g #x56 :b #x58 :a #x80) + (new 'static 'rgba :r #x34 :g #x5d :b #x5b :a #x80) + (new 'static 'rgba :r #x33 :g #x5b :b #x56 :a #x80) + (new 'static 'rgba :r #x31 :g #x58 :b #x57 :a #x80) + (new 'static 'rgba :r #x31 :g #x57 :b #x53 :a #x80) + (new 'static 'rgba :r #x33 :g #x58 :b #x55 :a #x80) + (new 'static 'rgba :r #x28 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x1e :g #x47 :b #x46 :a #x80) + (new 'static 'rgba :r #x1c :g #x46 :b #x46 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x44 :a #x80) + (new 'static 'rgba :r #x13 :g #x42 :b #x42 :a #x80) + (new 'static 'rgba :r #x12 :g #x43 :b #x41 :a #x80) + (new 'static 'rgba :r #x12 :g #x43 :b #x41 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x40 :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x3f :a #x80) + (new 'static 'rgba :r #x15 :g #x44 :b #x43 :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x13 :g #x42 :b #x3e :a #x80) + (new 'static 'rgba :r #x15 :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x19 :g #x43 :b #x44 :a #x80) + (new 'static 'rgba :r #x1b :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x1c :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x1d :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x26 :g #x4e :b #x4b :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x24 :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x4b :a #x80) + (new 'static 'rgba :r #x28 :g #x4e :b #x4f :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x1f :g #x48 :b #x48 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x45 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x43 :a #x80) + (new 'static 'rgba :r #x1b :g #x45 :b #x46 :a #x80) + (new 'static 'rgba :r #x18 :g #x47 :b #x46 :a #x80) + (new 'static 'rgba :r #x18 :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x15 :g #x48 :b #x43 :a #x80) + (new 'static 'rgba :r #x15 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x18 :g #x49 :b #x4a :a #x80) + (new 'static 'rgba :r #x1d :g #x43 :b #x4b :a #x80) + (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x27 :g #x48 :b #x4e :a #x80) + (new 'static 'rgba :r #x38 :g #x60 :b #x5e :a #x80) + (new 'static 'rgba :r #x38 :g #x60 :b #x5c :a #x80) + (new 'static 'rgba :r #x36 :g #x5d :b #x5a :a #x80) + (new 'static 'rgba :r #x30 :g #x57 :b #x55 :a #x80) + (new 'static 'rgba :r #x32 :g #x58 :b #x54 :a #x80) + (new 'static 'rgba :r #x24 :g #x4e :b #x4b :a #x80) + (new 'static 'rgba :r #x26 :g #x4e :b #x4e :a #x80) + (new 'static 'rgba :r #x22 :g #x4a :b #x4b :a #x80) + (new 'static 'rgba :r #x1d :g #x48 :b #x47 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x44 :a #x80) + (new 'static 'rgba :r #x15 :g #x43 :b #x43 :a #x80) + (new 'static 'rgba :r #x17 :g #x46 :b #x45 :a #x80) + (new 'static 'rgba :r #xe :g #x41 :b #x40 :a #x80) + (new 'static 'rgba :r #xe :g #x41 :b #x3d :a #x80) + (new 'static 'rgba :r #xd :g #x40 :b #x3f :a #x80) + (new 'static 'rgba :r #xc :g #x41 :b #x3f :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x40 :a #x80) + (new 'static 'rgba :r #xf :g #x41 :b #x40 :a #x80) + (new 'static 'rgba :r #xf :g #x41 :b #x3f :a #x80) + (new 'static 'rgba :r #xf :g #x41 :b #x3d :a #x80) + (new 'static 'rgba :r #x10 :g #x41 :b #x40 :a #x80) + (new 'static 'rgba :r #x13 :g #x43 :b #x3f :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x43 :a #x80) + (new 'static 'rgba :r #x1a :g #x43 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x1f :g #x48 :b #x45 :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x4b :a #x80) + (new 'static 'rgba :r #x23 :g #x4a :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x1d :g #x48 :b #x44 :a #x80) + (new 'static 'rgba :r #x1d :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x1b :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x1a :g #x4a :b #x46 :a #x80) + (new 'static 'rgba :r #x18 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x19 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x1c :g #x49 :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x42 :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x29 :g #x4a :b #x4f :a #x80) + (new 'static 'rgba :r #x38 :g #x61 :b #x5c :a #x80) + (new 'static 'rgba :r #x38 :g #x5f :b #x5a :a #x80) + (new 'static 'rgba :r #x35 :g #x5d :b #x5a :a #x80) + (new 'static 'rgba :r #x26 :g #x52 :b #x4e :a #x80) + (new 'static 'rgba :r #x2d :g #x55 :b #x51 :a #x80) + (new 'static 'rgba :r #x28 :g #x51 :b #x50 :a #x80) + (new 'static 'rgba :r #x23 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x43 :a #x80) + (new 'static 'rgba :r #x12 :g #x44 :b #x42 :a #x80) + (new 'static 'rgba :r #xf :g #x42 :b #x42 :a #x80) + (new 'static 'rgba :r #xc :g #x41 :b #x3f :a #x80) + (new 'static 'rgba :r #xd :g #x40 :b #x3e :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x3f :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x3e :a #x80) + (new 'static 'rgba :r #xc :g #x3e :b #x3d :a #x80) + (new 'static 'rgba :r #x1e :g #x4a :b #x45 :a #x80) + (new 'static 'rgba :r #xc :g #x3f :b #x40 :a #x80) + (new 'static 'rgba :r #xd :g #x41 :b #x3e :a #x80) + (new 'static 'rgba :r #xf :g #x41 :b #x40 :a #x80) + (new 'static 'rgba :r #xe :g #x41 :b #x40 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x42 :a #x80) + (new 'static 'rgba :r #x15 :g #x43 :b #x43 :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x46 :b #x45 :a #x80) + (new 'static 'rgba :r #x1d :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x48 :b #x49 :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x4b :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x4b :a #x80) + (new 'static 'rgba :r #x22 :g #x49 :b #x4a :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x22 :g #x4a :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x4b :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x4a :b #x49 :a #x80) + (new 'static 'rgba :r #x1f :g #x4d :b #x4c :a #x80) + (new 'static 'rgba :r #x1e :g #x4f :b #x4b :a #x80) + (new 'static 'rgba :r #x1d :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x1c :g #x4c :b #x4e :a #x80) + (new 'static 'rgba :r #x1e :g #x46 :b #x4b :a #x80) + (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x25 :g #x49 :b #x4e :a #x80) + (new 'static 'rgba :r #x2f :g #x5c :b #x5a :a #x80) + (new 'static 'rgba :r #x32 :g #x5b :b #x5a :a #x80) + (new 'static 'rgba :r #x33 :g #x5b :b #x5a :a #x80) + (new 'static 'rgba :r #x30 :g #x58 :b #x56 :a #x80) + (new 'static 'rgba :r #x29 :g #x52 :b #x4f :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x4c :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x19 :g #x49 :b #x46 :a #x80) + (new 'static 'rgba :r #x15 :g #x46 :b #x45 :a #x80) + (new 'static 'rgba :r #x11 :g #x46 :b #x41 :a #x80) + (new 'static 'rgba :r #xe :g #x42 :b #x41 :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x40 :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x41 :a #x80) + (new 'static 'rgba :r #x11 :g #x38 :b #x3f :a #x80) + (new 'static 'rgba :r #x11 :g #x39 :b #x3e :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x3e :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x40 :a #x80) + (new 'static 'rgba :r #xf :g #x41 :b #x3f :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x41 :a #x80) + (new 'static 'rgba :r #xe :g #x42 :b #x3f :a #x80) + (new 'static 'rgba :r #xf :g #x43 :b #x3f :a #x80) + (new 'static 'rgba :r #x11 :g #x44 :b #x3f :a #x80) + (new 'static 'rgba :r #x14 :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x16 :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x46 :a #x80) + (new 'static 'rgba :r #x1e :g #x46 :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x24 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x1f :g #x48 :b #x47 :a #x80) + (new 'static 'rgba :r #x23 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x23 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x23 :g #x4e :b #x4e :a #x80) + (new 'static 'rgba :r #x24 :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x25 :g #x50 :b #x51 :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x4f :a #x80) + (new 'static 'rgba :r #x1e :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x4d :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x22 :g #x46 :b #x4c :a #x80) + (new 'static 'rgba :r #x28 :g #x59 :b #x57 :a #x80) + (new 'static 'rgba :r #x29 :g #x58 :b #x54 :a #x80) + (new 'static 'rgba :r #x29 :g #x56 :b #x53 :a #x80) + (new 'static 'rgba :r #x27 :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x21 :g #x4e :b #x4e :a #x80) + (new 'static 'rgba :r #x1a :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x18 :g #x49 :b #x46 :a #x80) + (new 'static 'rgba :r #x15 :g #x48 :b #x47 :a #x80) + (new 'static 'rgba :r #x12 :g #x46 :b #x42 :a #x80) + (new 'static 'rgba :r #x11 :g #x44 :b #x44 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x41 :a #x80) + (new 'static 'rgba :r #x13 :g #x38 :b #x40 :a #x80) + (new 'static 'rgba :r #x16 :g #x37 :b #x40 :a #x80) + (new 'static 'rgba :r #x16 :g #x36 :b #x3f :a #x80) + (new 'static 'rgba :r #x16 :g #x34 :b #x3e :a #x80) + (new 'static 'rgba :r #x16 :g #x39 :b #x3f :a #x80) + (new 'static 'rgba :r #x14 :g #x3a :b #x40 :a #x80) + (new 'static 'rgba :r #x13 :g #x3d :b #x41 :a #x80) + (new 'static 'rgba :r #x11 :g #x3f :b #x42 :a #x80) + (new 'static 'rgba :r #xf :g #x41 :b #x41 :a #x80) + (new 'static 'rgba :r #x10 :g #x42 :b #x43 :a #x80) + (new 'static 'rgba :r #x10 :g #x45 :b #x40 :a #x80) + (new 'static 'rgba :r #x24 :g #x4f :b #x48 :a #x80) + (new 'static 'rgba :r #x15 :g #x47 :b #x43 :a #x80) + (new 'static 'rgba :r #x19 :g #x48 :b #x45 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x4a :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x25 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x25 :g #x4d :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x4d :a #x80) + (new 'static 'rgba :r #x25 :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x25 :g #x4e :b #x4e :a #x80) + (new 'static 'rgba :r #x27 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x27 :g #x51 :b #x4d :a #x80) + (new 'static 'rgba :r #x28 :g #x52 :b #x4f :a #x80) + (new 'static 'rgba :r #x2a :g #x54 :b #x50 :a #x80) + (new 'static 'rgba :r #x2a :g #x54 :b #x54 :a #x80) + (new 'static 'rgba :r #x29 :g #x54 :b #x54 :a #x80) + (new 'static 'rgba :r #x22 :g #x54 :b #x53 :a #x80) + (new 'static 'rgba :r #x1f :g #x4c :b #x4f :a #x80) + (new 'static 'rgba :r #x21 :g #x3c :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x21 :g #x47 :b #x4b :a #x80) + (new 'static 'rgba :r #x25 :g #x55 :b #x54 :a #x80) + (new 'static 'rgba :r #x22 :g #x54 :b #x51 :a #x80) + (new 'static 'rgba :r #x21 :g #x51 :b #x51 :a #x80) + (new 'static 'rgba :r #x1e :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x19 :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x17 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x14 :g #x46 :b #x46 :a #x80) + (new 'static 'rgba :r #x14 :g #x46 :b #x43 :a #x80) + (new 'static 'rgba :r #x13 :g #x45 :b #x46 :a #x80) + (new 'static 'rgba :r #x15 :g #x3f :b #x43 :a #x80) + (new 'static 'rgba :r #x17 :g #x3c :b #x41 :a #x80) + (new 'static 'rgba :r #x19 :g #x36 :b #x41 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x40 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x40 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x40 :a #x80) + (new 'static 'rgba :r #x19 :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x1a :g #x3a :b #x43 :a #x80) + (new 'static 'rgba :r #x19 :g #x3a :b #x42 :a #x80) + (new 'static 'rgba :r #x16 :g #x3f :b #x43 :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x44 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x45 :a #x80) + (new 'static 'rgba :r #x12 :g #x46 :b #x45 :a #x80) + (new 'static 'rgba :r #x14 :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x15 :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x19 :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x4a :b #x4a :a #x80) + (new 'static 'rgba :r #x23 :g #x4c :b #x4d :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x4e :a #x80) + (new 'static 'rgba :r #x25 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x23 :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x4a :a #x80) + (new 'static 'rgba :r #x26 :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x28 :g #x4f :b #x50 :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x26 :g #x4e :b #x4f :a #x80) + (new 'static 'rgba :r #x2c :g #x54 :b #x52 :a #x80) + (new 'static 'rgba :r #x2b :g #x55 :b #x51 :a #x80) + (new 'static 'rgba :r #x2d :g #x57 :b #x55 :a #x80) + (new 'static 'rgba :r #x2d :g #x59 :b #x57 :a #x80) + (new 'static 'rgba :r #x2b :g #x57 :b #x54 :a #x80) + (new 'static 'rgba :r #x24 :g #x55 :b #x52 :a #x80) + (new 'static 'rgba :r #x20 :g #x4d :b #x50 :a #x80) + (new 'static 'rgba :r #x21 :g #x3e :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1e :g #x3f :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x50 :a #x80) + (new 'static 'rgba :r #x20 :g #x53 :b #x51 :a #x80) + (new 'static 'rgba :r #x1e :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x1b :g #x4f :b #x4a :a #x80) + (new 'static 'rgba :r #x18 :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x16 :g #x47 :b #x48 :a #x80) + (new 'static 'rgba :r #x14 :g #x44 :b #x45 :a #x80) + (new 'static 'rgba :r #x15 :g #x44 :b #x47 :a #x80) + (new 'static 'rgba :r #x17 :g #x41 :b #x45 :a #x80) + (new 'static 'rgba :r #x1a :g #x3b :b #x44 :a #x80) + (new 'static 'rgba :r #x1c :g #x44 :b #x48 :a #x80) + (new 'static 'rgba :r #x1d :g #x46 :b #x4a :a #x80) + (new 'static 'rgba :r #x1b :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1b :g #x31 :b #x40 :a #x80) + (new 'static 'rgba :r #x1b :g #x36 :b #x41 :a #x80) + (new 'static 'rgba :r #x1c :g #x37 :b #x43 :a #x80) + (new 'static 'rgba :r #x1c :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #x1c :g #x3a :b #x45 :a #x80) + (new 'static 'rgba :r #x1b :g #x3e :b #x45 :a #x80) + (new 'static 'rgba :r #x19 :g #x3f :b #x45 :a #x80) + (new 'static 'rgba :r #x17 :g #x40 :b #x46 :a #x80) + (new 'static 'rgba :r #x15 :g #x46 :b #x48 :a #x80) + (new 'static 'rgba :r #x14 :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x17 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x1a :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x1e :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x23 :g #x4d :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x26 :g #x50 :b #x4f :a #x80) + (new 'static 'rgba :r #x24 :g #x4e :b #x4f :a #x80) + (new 'static 'rgba :r #x27 :g #x51 :b #x50 :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x51 :a #x80) + (new 'static 'rgba :r #x29 :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x29 :g #x52 :b #x52 :a #x80) + (new 'static 'rgba :r #x2d :g #x56 :b #x53 :a #x80) + (new 'static 'rgba :r #x2b :g #x55 :b #x55 :a #x80) + (new 'static 'rgba :r #x2c :g #x55 :b #x52 :a #x80) + (new 'static 'rgba :r #x30 :g #x59 :b #x58 :a #x80) + (new 'static 'rgba :r #x2f :g #x58 :b #x59 :a #x80) + (new 'static 'rgba :r #x2a :g #x57 :b #x57 :a #x80) + (new 'static 'rgba :r #x23 :g #x56 :b #x51 :a #x80) + (new 'static 'rgba :r #x21 :g #x4e :b #x51 :a #x80) + (new 'static 'rgba :r #x23 :g #x3f :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x39 :b #x41 :a #x80) + (new 'static 'rgba :r #x1e :g #x3e :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x46 :b #x4c :a #x80) + (new 'static 'rgba :r #x1c :g #x4e :b #x4d :a #x80) + (new 'static 'rgba :r #x1b :g #x4e :b #x4a :a #x80) + (new 'static 'rgba :r #x19 :g #x49 :b #x4b :a #x80) + (new 'static 'rgba :r #x17 :g #x46 :b #x47 :a #x80) + (new 'static 'rgba :r #x18 :g #x43 :b #x47 :a #x80) + (new 'static 'rgba :r #x1a :g #x42 :b #x48 :a #x80) + (new 'static 'rgba :r #x1c :g #x3f :b #x46 :a #x80) + (new 'static 'rgba :r #x1c :g #x3a :b #x44 :a #x80) + (new 'static 'rgba :r #x1d :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x1d :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1e :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1e :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x1e :g #x3c :b #x46 :a #x80) + (new 'static 'rgba :r #x1e :g #x3e :b #x47 :a #x80) + (new 'static 'rgba :r #x1b :g #x42 :b #x49 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x4a :a #x80) + (new 'static 'rgba :r #x18 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x18 :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x1b :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x1e :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x20 :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x21 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x27 :g #x52 :b #x52 :a #x80) + (new 'static 'rgba :r #x26 :g #x52 :b #x50 :a #x80) + (new 'static 'rgba :r #x26 :g #x52 :b #x52 :a #x80) + (new 'static 'rgba :r #x28 :g #x53 :b #x53 :a #x80) + (new 'static 'rgba :r #x29 :g #x55 :b #x50 :a #x80) + (new 'static 'rgba :r #x2b :g #x56 :b #x52 :a #x80) + (new 'static 'rgba :r #x2c :g #x58 :b #x56 :a #x80) + (new 'static 'rgba :r #x2c :g #x58 :b #x55 :a #x80) + (new 'static 'rgba :r #x2e :g #x58 :b #x58 :a #x80) + (new 'static 'rgba :r #x2c :g #x59 :b #x59 :a #x80) + (new 'static 'rgba :r #x26 :g #x58 :b #x52 :a #x80) + (new 'static 'rgba :r #x22 :g #x56 :b #x52 :a #x80) + (new 'static 'rgba :r #x22 :g #x4c :b #x4f :a #x80) + (new 'static 'rgba :r #x22 :g #x3c :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1a :g #x36 :b #x40 :a #x80) + (new 'static 'rgba :r #x1a :g #x36 :b #x40 :a #x80) + (new 'static 'rgba :r #x1c :g #x3a :b #x44 :a #x80) + (new 'static 'rgba :r #x1d :g #x44 :b #x49 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x4b :a #x80) + (new 'static 'rgba :r #x1c :g #x45 :b #x48 :a #x80) + (new 'static 'rgba :r #x1c :g #x42 :b #x47 :a #x80) + (new 'static 'rgba :r #x1d :g #x40 :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x1e :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x3a :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x3f :b #x49 :a #x80) + (new 'static 'rgba :r #x1e :g #x43 :b #x4a :a #x80) + (new 'static 'rgba :r #x1d :g #x48 :b #x4d :a #x80) + (new 'static 'rgba :r #x1c :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x1b :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x1c :g #x50 :b #x4f :a #x80) + (new 'static 'rgba :r #x1e :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x1f :g #x52 :b #x4f :a #x80) + (new 'static 'rgba :r #x20 :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x21 :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x23 :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x23 :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x23 :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x24 :g #x53 :b #x51 :a #x80) + (new 'static 'rgba :r #x24 :g #x53 :b #x51 :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x50 :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x51 :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x53 :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x55 :a #x80) + (new 'static 'rgba :r #x28 :g #x56 :b #x56 :a #x80) + (new 'static 'rgba :r #x26 :g #x57 :b #x54 :a #x80) + (new 'static 'rgba :r #x22 :g #x54 :b #x55 :a #x80) + (new 'static 'rgba :r #x23 :g #x4f :b #x53 :a #x80) + (new 'static 'rgba :r #x24 :g #x41 :b #x4c :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x22 :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x37 :b #x41 :a #x80) + (new 'static 'rgba :r #x1b :g #x35 :b #x41 :a #x80) + (new 'static 'rgba :r #x1b :g #x36 :b #x41 :a #x80) + (new 'static 'rgba :r #x1d :g #x3b :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x3d :b #x46 :a #x80) + (new 'static 'rgba :r #x1e :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x1e :g #x3c :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x3e :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x22 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x22 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x22 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3e :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x42 :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x45 :b #x4c :a #x80) + (new 'static 'rgba :r #x20 :g #x48 :b #x4c :a #x80) + (new 'static 'rgba :r #x1f :g #x4a :b #x4f :a #x80) + (new 'static 'rgba :r #x1e :g #x4e :b #x51 :a #x80) + (new 'static 'rgba :r #x1f :g #x50 :b #x4f :a #x80) + (new 'static 'rgba :r #x1f :g #x51 :b #x51 :a #x80) + (new 'static 'rgba :r #x1f :g #x53 :b #x52 :a #x80) + (new 'static 'rgba :r #x20 :g #x52 :b #x52 :a #x80) + (new 'static 'rgba :r #x21 :g #x54 :b #x52 :a #x80) + (new 'static 'rgba :r #x21 :g #x52 :b #x52 :a #x80) + (new 'static 'rgba :r #x20 :g #x54 :b #x52 :a #x80) + (new 'static 'rgba :r #x21 :g #x54 :b #x50 :a #x80) + (new 'static 'rgba :r #x21 :g #x54 :b #x4f :a #x80) + (new 'static 'rgba :r #x21 :g #x54 :b #x53 :a #x80) + (new 'static 'rgba :r #x21 :g #x54 :b #x50 :a #x80) + (new 'static 'rgba :r #x20 :g #x54 :b #x51 :a #x80) + (new 'static 'rgba :r #x21 :g #x52 :b #x53 :a #x80) + (new 'static 'rgba :r #x22 :g #x51 :b #x54 :a #x80) + (new 'static 'rgba :r #x22 :g #x4f :b #x53 :a #x80) + (new 'static 'rgba :r #x23 :g #x4d :b #x51 :a #x80) + (new 'static 'rgba :r #x26 :g #x43 :b #x4d :a #x80) + (new 'static 'rgba :r #x23 :g #x3d :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1d :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x1c :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x37 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x37 :b #x42 :a #x80) + (new 'static 'rgba :r #x1d :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #x21 :g #x40 :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x42 :b #x4a :a #x80) + (new 'static 'rgba :r #x22 :g #x43 :b #x4b :a #x80) + (new 'static 'rgba :r #x22 :g #x45 :b #x4c :a #x80) + (new 'static 'rgba :r #x21 :g #x46 :b #x4d :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x4f :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x4f :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x4e :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x4e :a #x80) + (new 'static 'rgba :r #x21 :g #x47 :b #x4e :a #x80) + (new 'static 'rgba :r #x21 :g #x48 :b #x4e :a #x80) + (new 'static 'rgba :r #x21 :g #x48 :b #x4e :a #x80) + (new 'static 'rgba :r #x21 :g #x49 :b #x4f :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x4e :a #x80) + (new 'static 'rgba :r #x20 :g #x47 :b #x4e :a #x80) + (new 'static 'rgba :r #x20 :g #x46 :b #x4d :a #x80) + (new 'static 'rgba :r #x20 :g #x46 :b #x4c :a #x80) + (new 'static 'rgba :r #x21 :g #x45 :b #x4c :a #x80) + (new 'static 'rgba :r #x23 :g #x41 :b #x4b :a #x80) + (new 'static 'rgba :r #x22 :g #x40 :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1d :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x1d :g #x38 :b #x43 :a #x80) + (new 'static 'rgba :r #x1d :g #x37 :b #x42 :a #x80) + (new 'static 'rgba :r #x1d :g #x38 :b #x42 :a #x80) + (new 'static 'rgba :r #x1d :g #x39 :b #x43 :a #x80) + (new 'static 'rgba :r #x1e :g #x3b :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x3e :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #x21 :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x3c :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x3c :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x21 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1e :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #x1d :g #x39 :b #x43 :a #x80) + (new 'static 'rgba :r #x1e :g #x38 :b #x43 :a #x80) + (new 'static 'rgba :r #x1e :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x31 :b #x41 :a #x80) + (new 'static 'rgba :r #x1e :g #x32 :b #x40 :a #x80) + (new 'static 'rgba :r #x1e :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + ) + ) + ) + +(define *ocean-near-indices-village2* + (new 'static 'ocean-near-indices + :data + (new 'static 'inline-array ocean-near-index 23 + (new 'static 'ocean-near-index) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x1 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x1 + #x0 + #x0 + #x0 + #xffff + #x0 + #x0 + #x0 + #xffff + #x0 + #x0 + #x0 + #xffff + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x2 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #x0 + #x0 + #x0 + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x3 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #x4 + #x5 + #x6 + #xffff + #x7 + #x0 + #x0 + #xffff + #x8 + #x0 + #x0 + #xffff + #x9 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xa + #xb + #x0 + #x0 + #xc + #x0 + #x0 + #x0 + #xd + #x0 + #x0 + #x0 + #xe + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xf + #xf + #xf + #xffff + #xf + #xf + #xf + #xffff + #xffff + #x2 + #x13 + #xffff + #xffff + #x15 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xf + #xf + #x10 + #x11 + #xf + #xf + #xf + #x12 + #x0 + #x0 + #xf + #x14 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x16 + #xffff + #xffff + #x0 + #x0 + #x1d + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x17 + #x18 + #x19 + #x1a + #x0 + #x0 + #x1e + #x1f + #x0 + #x0 + #x0 + #x22 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #x1b + #x1c + #x0 + #x20 + #x21 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x23 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x24 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x25 + #x2a + #x2b + #x2c + #x2d + #xffff + #x33 + #x0 + #x34 + #xffff + #x38 + #x39 + #x3a + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x26 + #x27 + #x0 + #x2e + #x2f + #x30 + #x0 + #xffff + #x35 + #x36 + #x0 + #x3b + #x3c + #x6 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x28 + #x0 + #x0 + #x31 + #x32 + #x0 + #x0 + #x37 + #x0 + #x0 + #x0 + #x3d + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x29 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #x3e + #x3f + #x40 + #xffff + #x42 + #x0 + #x0 + #xffff + #x47 + #x48 + #x49 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x41 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x43 + #x4a + #x4b + #x0 + #x4c + #x4e + #x4f + #x50 + #x51 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x44 + #x45 + #x46 + #x0 + #xffff + #xffff + #x4d + #x46 + #xffff + #xffff + #xffff + #x52 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x53 + #x54 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #x0 + #x0 + #xffff + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + ) + ) + ) + +(define *ocean-trans-indices-village2* + (new 'static 'ocean-trans-indices + :data + (new 'static 'inline-array ocean-trans-index 2304 + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 85 :child 2) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 86 :child 3) + (new 'static 'ocean-trans-index :parent 87 :child 4) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 86 :child 3) + (new 'static 'ocean-trans-index :parent 7 :child 5) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 86 :child 3) + (new 'static 'ocean-trans-index :child 6) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 88 :child 7) + (new 'static 'ocean-trans-index :child 8) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 89 :child 9) + (new 'static 'ocean-trans-index :parent 29 :child 10) + (new 'static 'ocean-trans-index :child 11) + (new 'static 'ocean-trans-index :parent 6 :child 12) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 81 :child 13) + (new 'static 'ocean-trans-index :parent 90 :child 14) + (new 'static 'ocean-trans-index :parent 91 :child 15) + (new 'static 'ocean-trans-index :child 16) + (new 'static 'ocean-trans-index :child 17) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 92 :child 18) + (new 'static 'ocean-trans-index :child 19) + (new 'static 'ocean-trans-index :parent 93 :child 20) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 94 :child 21) + (new 'static 'ocean-trans-index :parent 95 :child 22) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + ) + ) + ) + +(define *ocean-mid-indices-village2* + (new 'static 'ocean-mid-indices + :data + (new 'static 'array uint16 36 + #xffff + #xffff + #xffff + #x60 + #x0 + #x0 + #xffff + #xffff + #xffff + #x60 + #x0 + #x0 + #xffff + #xffff + #x61 + #x62 + #x0 + #x0 + #x63 + #x64 + #x65 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + ) + +(define *ocean-mid-masks-village2* + (new 'static 'ocean-mid-masks + :data + (new 'static 'inline-array ocean-mid-mask 102 + (new 'static 'ocean-mid-mask) + (new 'static 'ocean-mid-mask :dword #xfffffffffffffffe) + (new 'static 'ocean-mid-mask :dword #x7fffffffffffffff) + (new 'static 'ocean-mid-mask :dword #x30307070f1f1f1f) + (new 'static 'ocean-mid-mask :dword #x1010303030387ff) + (new 'static 'ocean-mid-mask :dword #x62ffff) + (new 'static 'ocean-mid-mask :dword #x1) + (new 'static 'ocean-mid-mask :dword #x1010101) + (new 'static 'ocean-mid-mask :dword #x3f1f1f1f1f0f0701) + (new 'static 'ocean-mid-mask :dword #x1f1f1f1f3f3f3f3f) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f3f7fffff) + (new 'static 'ocean-mid-mask :dword #x3) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0f0f0f0f) + (new 'static 'ocean-mid-mask :dword #x303070707070f0f) + (new 'static 'ocean-mid-mask :dword #x101010303) + (new 'static 'ocean-mid-mask :dword #xfeffffffffffffff) + (new 'static 'ocean-mid-mask :dword #x7f7fffffffffffff) + (new 'static 'ocean-mid-mask :dword #x30f3f7f) + (new 'static 'ocean-mid-mask :dword #x3f1f1f0f0f090100) + (new 'static 'ocean-mid-mask :dword #x1070f1f3f7f) + (new 'static 'ocean-mid-mask :dword #xf1f1f3f3f0f0f3f) + (new 'static 'ocean-mid-mask :dword #x70f1f3f3f7f7f7f) + (new 'static 'ocean-mid-mask :dword #x8080808080f0) + (new 'static 'ocean-mid-mask :dword #x1fffffffffffff) + (new 'static 'ocean-mid-mask :dword #x10f0f9ffffffff) + (new 'static 'ocean-mid-mask :dword #x3c3fffffffffffff) + (new 'static 'ocean-mid-mask :dword #xfefeffffffffffff) + (new 'static 'ocean-mid-mask :dword #x3f7fffffffffffff) + (new 'static 'ocean-mid-mask :dword #x10303) + (new 'static 'ocean-mid-mask :dword #xfc) + (new 'static 'ocean-mid-mask :dword #x1c) + (new 'static 'ocean-mid-mask :dword #xc0e0f0f8f8fefcfc) + (new 'static 'ocean-mid-mask :dword #x3078fdfdffffff) + (new 'static 'ocean-mid-mask :dword #x10307) + (new 'static 'ocean-mid-mask :dword #xc0c0) + (new 'static 'ocean-mid-mask :dword #x3800000000000000) + (new 'static 'ocean-mid-mask :dword #xff7f7f7fffffffff) + (new 'static 'ocean-mid-mask :dword #xf0c0c0000000000) + (new 'static 'ocean-mid-mask :dword #xc000000000000000) + (new 'static 'ocean-mid-mask :dword #x300000000000000) + (new 'static 'ocean-mid-mask :dword #x30f0e0c0) + (new 'static 'ocean-mid-mask :dword #x7071f) + (new 'static 'ocean-mid-mask :dword #xff3f1f0f03010100) + (new 'static 'ocean-mid-mask :dword #x3f3f1c1800000000) + (new 'static 'ocean-mid-mask :dword #xc0e0e0c080) + (new 'static 'ocean-mid-mask :dword #xfeffffff3f3f3f1f) + (new 'static 'ocean-mid-mask :dword #xffffffff00000000) + (new 'static 'ocean-mid-mask :dword #x7f7fffffe0e0e0c0) + (new 'static 'ocean-mid-mask :dword #x3030307) + (new 'static 'ocean-mid-mask :dword #xe0e0e0e0e0e000) + (new 'static 'ocean-mid-mask :dword #x1030707070300) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0f0f1f1f) + (new 'static 'ocean-mid-mask :dword #xfffefefefefefefe) + (new 'static 'ocean-mid-mask :dword #xffff7f7f7f7f7f7f) + (new 'static 'ocean-mid-mask :dword #x301000000000000) + (new 'static 'ocean-mid-mask :dword #x7000000000000000) + (new 'static 'ocean-mid-mask :dword #x303077fffff3f7f) + (new 'static 'ocean-mid-mask :dword #xf000000000000000) + (new 'static 'ocean-mid-mask :dword #xfffefefefefeffff) + (new 'static 'ocean-mid-mask :dword #xf3fffffffffffff) + (new 'static 'ocean-mid-mask :dword #x60787f7f7f7f7fff) + (new 'static 'ocean-mid-mask :dword #x7070) + (new 'static 'ocean-mid-mask :dword #x70f0f0f07070303) + (new 'static 'ocean-mid-mask :dword #x70f8f8f8) + (new 'static 'ocean-mid-mask :dword #xe0fffff) + (new 'static 'ocean-mid-mask :dword #x30f) + (new 'static 'ocean-mid-mask :dword #xf07070707070707) + (new 'static 'ocean-mid-mask :dword #xf0f0f0e0c0800000) + (new 'static 'ocean-mid-mask :dword #xffffffffff7f7f1f) + (new 'static 'ocean-mid-mask :dword #xffe3010100000000) + (new 'static 'ocean-mid-mask :dword #x100000000000000) + (new 'static 'ocean-mid-mask :dword #xffffffffffffff7f) + (new 'static 'ocean-mid-mask :dword #xff1f1f0f07000000) + (new 'static 'ocean-mid-mask :dword #xffe0e0e000000000) + (new 'static 'ocean-mid-mask :dword #x7ffffffc18080000) + (new 'static 'ocean-mid-mask :dword #x33f3f00000000) + (new 'static 'ocean-mid-mask :dword #x83808080c0e0f0f0) + (new 'static 'ocean-mid-mask :dword #xffff1f1f0f0f0f0f) + (new 'static 'ocean-mid-mask :dword #x103070707) + (new 'static 'ocean-mid-mask :dword #xe0c000000080c080) + (new 'static 'ocean-mid-mask :dword #xe3c0808080838781) + (new 'static 'ocean-mid-mask :dword #xffffffff9f0f0f07) + (new 'static 'ocean-mid-mask :dword #x1030f0f0f070301) + (new 'static 'ocean-mid-mask :dword #xffffffffffffff00) + (new 'static 'ocean-mid-mask :dword #xfffffffffffff0f0) + (new 'static 'ocean-mid-mask :dword #xfffffffff1f1f1f0) + (new 'static 'ocean-mid-mask :dword #xfffffffff7ffffff) + (new 'static 'ocean-mid-mask :dword #xfffffffff7f7f3f1) + (new 'static 'ocean-mid-mask :dword #xfffffffff3f3f1f1) + (new 'static 'ocean-mid-mask :dword #xfffffffff0f0f1ff) + (new 'static 'ocean-mid-mask :dword #xfffffffff1f1f0f0) + (new 'static 'ocean-mid-mask :dword #xfffffffff0f1f0f0) + (new 'static 'ocean-mid-mask :dword #xfffffffffff1f1f1) + (new 'static 'ocean-mid-mask :dword #xfffffffff7f3f0f0) + (new 'static 'ocean-mid-mask :dword #xfffffffff7fffffc) + (new 'static 'ocean-mid-mask :dword #xfffffffff0f0f1f3) + (new 'static 'ocean-mid-mask :dword #x101010101010101) + (new 'static 'ocean-mid-mask :dword #x1f3fffffffffffff) + (new 'static 'ocean-mid-mask :dword #x10101010101) + (new 'static 'ocean-mid-mask :dword #xfcfcfcfcfcff) + (new 'static 'ocean-mid-mask :dword #x11ffffffffff) + (new 'static 'ocean-mid-mask :dword #x70f1f3f7f7f3f) + ) + ) + ) + +(define *ocean-near-indices-sunken* + (new 'static 'ocean-near-indices + :data + (new 'static 'inline-array ocean-near-index 1 + (new 'static 'ocean-near-index) + ) + ) + ) -(define *ocean-near-indices-sunken* (new 'static 'ocean-near-indices :data #x2580)) (define *ocean-trans-indices-sunken* (new 'static 'ocean-trans-indices)) -(define *ocean-mid-indices-sunken* (new 'static 'ocean-mid-indices)) -(define *ocean-mid-masks-sunken* (new 'static 'ocean-mid-masks :data #x100)) -(define *ocean-map-village1* (new 'static 'ocean-map - :start-corner (new 'static 'vector :x -9437184.0 :z -9437184.0 :w 1.0) - :far-color (new 'static 'vector :x 1.505882 :y 45.678432 :z 56.72157) - )) +(define *ocean-mid-indices-sunken* (new 'static 'ocean-mid-indices)) + +(define *ocean-mid-masks-sunken* + (new 'static 'ocean-mid-masks + :data + (new 'static 'inline-array ocean-mid-mask 2 + (new 'static 'ocean-mid-mask) + (new 'static 'ocean-mid-mask) + ) + ) + ) + +(define *ocean-map-village1* + (new 'static 'ocean-map + :start-corner + (new 'static 'vector :x -9437184.0 :z -9437184.0 :w 1.0) + :far-color + (new 'static 'vector :x 1.505882 :y 45.678432 :z 56.72157) + ) + ) + (set! (-> *ocean-map-village1* ocean-spheres) *ocean-spheres-village1*) (set! (-> *ocean-map-village1* ocean-colors) *ocean-colors-village1*) (set! (-> *ocean-map-village1* ocean-mid-masks) *ocean-mid-masks-village1*) @@ -9925,10 +12291,15 @@ (set! (-> *ocean-map-village1* ocean-trans-indices) *ocean-trans-indices-village1*) (set! (-> *ocean-map-village1* ocean-near-indices) *ocean-near-indices-village1*) -(define *ocean-map-village2* (new 'static 'ocean-map - :start-corner (new 'static 'vector :x -7892992.0 :z -15958016.0 :w 1.0) - :far-color (new 'static 'vector :x 31.62353 :y 50.19608 :z 66.76079) - )) +(define *ocean-map-village2* + (new 'static 'ocean-map + :start-corner + (new 'static 'vector :x -7892992.0 :z -15958016.0 :w 1.0) + :far-color + (new 'static 'vector :x 31.62353 :y 50.19608 :z 66.76079) + ) + ) + (set! (-> *ocean-map-village2* ocean-spheres) *ocean-spheres-village2*) (set! (-> *ocean-map-village2* ocean-colors) *ocean-colors-village2*) (set! (-> *ocean-map-village2* ocean-mid-masks) *ocean-mid-masks-village2*) @@ -9936,10 +12307,15 @@ (set! (-> *ocean-map-village2* ocean-trans-indices) *ocean-trans-indices-village2*) (set! (-> *ocean-map-village2* ocean-near-indices) *ocean-near-indices-village2*) -(define *ocean-map-sunken* (new 'static 'ocean-map - :start-corner (new 'static 'vector :x -7892992.0 :z -15958016.0 :w 1.0) - :far-color (new 'static 'vector :x 31.62353 :y 50.19608 :z 66.76079) - )) +(define *ocean-map-sunken* + (new 'static 'ocean-map + :start-corner + (new 'static 'vector :x -7892992.0 :z -15958016.0 :w 1.0) + :far-color + (new 'static 'vector :x 31.62353 :y 50.19608 :z 66.76079) + ) + ) + (set! (-> *ocean-map-sunken* ocean-spheres) *ocean-spheres-village2*) (set! (-> *ocean-map-sunken* ocean-colors) *ocean-colors-village2*) (set! (-> *ocean-map-sunken* ocean-mid-masks) *ocean-mid-masks-sunken*) @@ -9947,3 +12323,6 @@ (set! (-> *ocean-map-sunken* ocean-trans-indices) *ocean-trans-indices-sunken*) (set! (-> *ocean-map-sunken* ocean-near-indices) *ocean-near-indices-sunken*) + + + diff --git a/goal_src/engine/gfx/shadow/shadow-cpu.gc b/goal_src/engine/gfx/shadow/shadow-cpu.gc index 6e155eb001..fe0b98c448 100644 --- a/goal_src/engine/gfx/shadow/shadow-cpu.gc +++ b/goal_src/engine/gfx/shadow/shadow-cpu.gc @@ -7,3 +7,6 @@ ;; TODO - for video (define-extern *shadow-data* shadow-data) + +;; todo +(define *shadow-data* (new 'static 'shadow-data)) \ No newline at end of file diff --git a/goal_src/engine/gfx/texture-h.gc b/goal_src/engine/gfx/texture-h.gc index d62762957c..fd19ac5c64 100644 --- a/goal_src/engine/gfx/texture-h.gc +++ b/goal_src/engine/gfx/texture-h.gc @@ -104,7 +104,7 @@ (dummy-18 () none 18) (dummy-19 () none 19) (unload! (_type_ texture-page) int 20) - (upload-one-common! (_type_) symbol 21) + (upload-one-common! (_type_ level) symbol 21) (lookup-boot-common-id (_type_ int) int 22) ) ) diff --git a/goal_src/engine/gfx/texture.gc b/goal_src/engine/gfx/texture.gc index ad92c0556b..a016db7147 100644 --- a/goal_src/engine/gfx/texture.gc +++ b/goal_src/engine/gfx/texture.gc @@ -810,7 +810,7 @@ (none) ) -(defun upload-vram-pages ((pool texture-pool) (segment texture-pool-segment) (page texture-page) (mode int) (bucket-idx int)) +(defun upload-vram-pages ((pool texture-pool) (segment texture-pool-segment) (page texture-page) (mode int) (bucket-idx bucket-id)) "Add a dma chain to upload textures to the bucket. This will only upload chunks that aren't already there. This will automatically update the cache info in the pool for the upload. mode: -3 = don't want anything (this function does nothing) @@ -1059,7 +1059,7 @@ 0 ) -(defun upload-vram-pages-pris ((pool texture-pool) (segment texture-pool-segment) (page texture-page) (bucket-idx int) (needed-mask int)) +(defun upload-vram-pages-pris ((pool texture-pool) (segment texture-pool-segment) (page texture-page) (bucket-idx bucket-id) (needed-mask int)) "Upload the entire texture page. If the needed-mask is not set, it will not upload those chunks. Upload will be added to the given bucket for on-screen. The nth bit of the mask determines if the nth 16-kB chunk is needed in this upload. @@ -1312,7 +1312,7 @@ ;; in the level data, there is always code, then TFRAG texture, ;; so mark the code memory end as the start of this page. ;; (note: this may be wrong on levels with the zoomer hud texture) - (set! (-> *level* unknown-level-2 code-memory-end) (the pointer page)) + (set! (-> *level* loading-level code-memory-end) (the pointer page)) page ) @@ -1358,7 +1358,7 @@ ) ) (set! (-> *texture-pool* allocate-func) texture-page-common-allocate) - (set! (-> *level* unknown-level-2 code-memory-end) (the pointer page)) + (set! (-> *level* loading-level code-memory-end) (the pointer page)) page ) @@ -1373,7 +1373,7 @@ (set! (-> pool common-page common-id) page) ) (else - (let ((level-idx (-> *level* unknown-level-2 index))) + (let ((level-idx (-> *level* loading-level index))) ;; these will handle TFRAG. These allocators will then switch the allocator ;; to common for everything else. (cond @@ -1579,7 +1579,7 @@ (when (= tex-page-kind (tpage-kind tfrag)) ;; TFRAG (0) ;; get the texture page, bucket to add to, and an effective distance from the closest thing. (let ((tfrag-page (-> level texture-page 0)) - (tfrag-bucket (if (zero? (-> level index)) 5 12)) + (tfrag-bucket (if (zero? (-> level index)) (bucket-id tfrag-tex0) (bucket-id tfrag-tex1))) ;; not really sure how this is calculated, but it's a distance. (distance (fmin (fmin (-> level closest-object 0) (if (and (< 0.0 (-> level level-distance)) @@ -1633,7 +1633,7 @@ (if (= tex-page-kind (tpage-kind pris)) ;; PRIS (1) (let ((pris-page (-> level texture-page 1))) (if (and pris-page (nonzero? pris-page)) - (let ((pris-bucket (if (zero? (-> level index)) 48 51))) + (let ((pris-bucket (if (zero? (-> level index)) (bucket-id pris-tex0) (bucket-id pris-tex1)))) ;; just upload the whole thing always. ;; use the cache mask as requested by the level. (set! (-> level upload-size 1) @@ -1649,7 +1649,7 @@ (shrub-closest (-> level closest-object 2)) ;; I guess this is the shrub closest. ) (if (and shrub-page (nonzero? shrub-page)) - (let ((shrub-bucket (if (zero? (-> level index)) 19 25)) + (let ((shrub-bucket (if (zero? (-> level index)) (bucket-id shrub-tex0) (bucket-id shrub-tex1))) (shrub-mode (cond ((= shrub-closest 4095995904.0) -3 ;; nothing @@ -1679,7 +1679,7 @@ (alpha-closest (-> level closest-object 3)) ) (if (and alpha-page (nonzero? alpha-page)) - (let ((alpha-bucket (if (zero? (-> level index)) 31 38)) + (let ((alpha-bucket (if (zero? (-> level index)) (bucket-id alpha-tex0) (bucket-id alpha-tex1))) (alpha-mode (cond ((< 348160.0 alpha-closest) 0 ;; segment 0 @@ -1712,7 +1712,7 @@ (if (= tex-page-kind (tpage-kind water)) ;; WATER (4) (let ((water-page (-> level texture-page 4))) (if (and water-page (nonzero? water-page)) - (let ((water-bucket (if (zero? (-> level index)) 57 60))) + (let ((water-bucket (if (zero? (-> level index)) (bucket-id water-tex0) (bucket-id water-tex1)))) (set! (-> level upload-size 4) (upload-vram-pages-pris obj (-> obj segment-common) water-page water-bucket (the-as int (-> level texture-mask 8))) ) @@ -1724,7 +1724,7 @@ (none) ) -(defmethod upload-one-common! texture-pool ((obj texture-pool)) +(defmethod upload-one-common! texture-pool ((obj texture-pool) (lev level)) "Upload the first common texture page that's in in the common-page-mask." (dotimes (v1-0 32) (let ((a2-0 (-> obj common-page v1-0))) @@ -1732,7 +1732,7 @@ (nonzero? (logand (-> obj common-page-mask) (ash 1 v1-0))) ;; in the mask. ) ;; upload it! - (upload-vram-pages obj (-> obj segment-common) a2-0 -2 65) + (upload-vram-pages obj (-> obj segment-common) a2-0 -2 (bucket-id bucket-65)) (return #f) ) ) @@ -1774,7 +1774,7 @@ ;; add it (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 5 + (bucket-id tfrag-tex0) a2-0 (the-as (pointer dma-tag) a3-3) ) @@ -1807,7 +1807,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 48 + (bucket-id pris-tex0) a2-1 (the-as (pointer dma-tag) a3-7) ) @@ -1840,7 +1840,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 19 + (bucket-id shrub-tex0) a2-2 (the-as (pointer dma-tag) a3-11) ) @@ -1873,7 +1873,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 31 + (bucket-id alpha-tex0) a2-3 (the-as (pointer dma-tag) a3-15) ) @@ -1908,7 +1908,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 12 + (bucket-id tfrag-tex1) a2-4 (the-as (pointer dma-tag) a3-19) ) @@ -1941,7 +1941,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 51 + (bucket-id pris-tex1) a2-5 (the-as (pointer dma-tag) a3-23) ) @@ -1974,7 +1974,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 25 + (bucket-id shrub-tex1) a2-6 (the-as (pointer dma-tag) a3-27) ) @@ -2007,7 +2007,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 38 + (bucket-id alpha-tex1) a2-7 (the-as (pointer dma-tag) a3-31) ) @@ -2736,7 +2736,7 @@ (set! obj (the-as texture-page #f)) ) ((begin - (let ((v1-2 (-> *level* unknown-level-2))) ;; loading/linking level + (let ((v1-2 (-> *level* loading-level))) ;; loading/linking level (tex-dbg " tpage is with level ~A~%" v1-2) (when v1-2 ;; add us to the loading level's tpages diff --git a/goal_src/engine/gfx/tfrag/tfrag-h.gc b/goal_src/engine/gfx/tfrag/tfrag-h.gc index 2115333595..579710d81b 100644 --- a/goal_src/engine/gfx/tfrag/tfrag-h.gc +++ b/goal_src/engine/gfx/tfrag/tfrag-h.gc @@ -78,7 +78,7 @@ ) (deftype drawable-tree-tfrag (drawable-tree) - () + ((time-of-day-pal time-of-day-palette :offset 12)) :method-count-assert 18 :size-assert #x24 :flag-assert #x1200000024 diff --git a/goal_src/engine/gfx/vis/bsp-h.gc b/goal_src/engine/gfx/vis/bsp-h.gc index 3ee7d4083c..a285577db2 100644 --- a/goal_src/engine/gfx/vis/bsp-h.gc +++ b/goal_src/engine/gfx/vis/bsp-h.gc @@ -30,7 +30,7 @@ (unk-data-0-len int32 :offset-assert 56) (unk-data-1 pointer :offset-assert 60) (unk-data-1-len int32 :offset-assert 64) - (unk-zero-0 uint32 :offset-assert 68) + (unk-zero-0 basic :offset-assert 68) (name symbol :offset-assert 72) (nickname symbol :offset-assert 76) (vis-info level-vis-info 8 :offset-assert 80) @@ -54,7 +54,6 @@ :flag-assert #x1400000190 (:methods (relocate (_type_ kheap (pointer uint8)) none :replace 7) - (dummy-17 () none 17) (dummy-18 (_type_) none 18) (dummy-19 (_type_) none 19) ) diff --git a/goal_src/engine/level/level-h.gc b/goal_src/engine/level/level-h.gc index 073986ef4f..a110836c8f 100644 --- a/goal_src/engine/level/level-h.gc +++ b/goal_src/engine/level/level-h.gc @@ -5,6 +5,7 @@ ;; name in dgo: level-h ;; dgos: GAME, ENGINE +;; The level system is responsible for loading and managning the two levels. (defconstant LEVEL_COUNT 2) ;; there are two levels in memory! @@ -75,6 +76,8 @@ :flag-assert #x900000074 ) +;; The levels are initialized (called "login") over multiple frames. +;; The state of this process is stored in a login-state. (declare-type drawable basic) (deftype login-state (basic) ((state int32 :offset-assert 4) @@ -147,7 +150,7 @@ (add-irq-to-tex-buckets! (_type_) none 11) (unload! (_type_) _type_ 12) (bsp-name (_type_) symbol 13) - (dummy-14 (_type_ object) none 14) + (dummy-14 (_type_ object) memory-usage-block 14) (dummy-15 (_type_ vector) symbol 15) (dummy-16 (_type_) none 16) (load-continue (_type_) _type_ 17) @@ -174,8 +177,8 @@ (declare-type entity-links structure) (deftype level-group (basic) ((length int32 :offset-assert 4) - (unknown-level-1 level :offset-assert 8) - (unknown-level-2 level :offset-assert 12) ;; currently loading + (log-in-level level :offset-assert 8) ;; level currently logging in + (loading-level level :offset-assert 12) ;; currently loading (entity-link entity-links :offset-assert 16) ;; not sure what's going on here (border? basic :offset-assert 20) (vis? basic :offset-assert 24) @@ -203,7 +206,7 @@ (level-get-for-use (_type_ symbol symbol) level 11) (activate-levels! (_type_) int 12) (dummy-13 () none 13) - (dummy-14 () none 14) + (dummy-14 (_type_ object) none 14) (dummy-15 () none 15) (dummy-16 (_type_) int 16) (level-get-target-inside (_type_) level 17) @@ -222,14 +225,15 @@ (defun-extern level-update-after-load level login-state level) - +;; Initialize the level structure. This assigns DMA buckets to each level. +;; TODO: figure out exactly which buckets are used for what. (define-extern *level* level-group) (if (zero? *level*) (set! *level* (new 'static 'level-group :length 2 - :unknown-level-1 #f - :unknown-level-2 #f + :log-in-level #f + :loading-level #f :entity-link #f :border? #f :want-level #f diff --git a/goal_src/engine/level/level.gc b/goal_src/engine/level/level.gc index 5dd427d486..36be64cba9 100644 --- a/goal_src/engine/level/level.gc +++ b/goal_src/engine/level/level.gc @@ -94,7 +94,7 @@ ;; relocate bsp-header (defmethod relocate bsp-header ((obj bsp-header) (dest-heap kheap) (name (pointer uint8))) - (let ((s5-0 (-> *level* unknown-level-2))) + (let ((s5-0 (-> *level* loading-level))) (if s5-0 (cond (obj @@ -455,8 +455,8 @@ "Start loading the level. Uses 2 megabyte heaps for loading each non-bt object." (set! loading-level (-> obj heap)) - (set! (-> *level* unknown-level-2) obj) - (set! (-> *level* unknown-level-1) #f) + (set! (-> *level* loading-level) obj) + (set! (-> *level* log-in-level) #f) (set! (-> obj nickname) #f) (set! (-> obj bsp) #f) (set! (-> obj entity) #f) @@ -487,7 +487,7 @@ (set! (-> *texture-pool* allocate-func) texture-page-default-allocate) (cond ((-> obj bsp) - (set! (-> *level* unknown-level-1) (the-as level (-> obj bsp))) + (set! (-> *level* log-in-level) (the-as level (-> obj bsp))) ;; TODO ;;(login-level-textures *texture-pool* obj (-> obj bsp unk-data-1-len) (the-as (pointer texture-id) (-> obj bsp unk-data-1))) (let ((bsp (-> obj bsp))) @@ -507,7 +507,7 @@ (else (level-status-set! obj 'inactive) (set! loading-level global) - (set! (-> *level* unknown-level-2) (-> *level* level-default)) + (set! (-> *level* loading-level) (-> *level* level-default)) ) ) obj @@ -701,8 +701,8 @@ (dummy-24 loaded-level) (set! (-> loaded-level status) 'loaded) (set! loading-level global) - (set! (-> *level* unknown-level-2) (-> *level* level-default)) - (set! (-> *level* unknown-level-1) #f) + (set! (-> *level* loading-level) (-> *level* level-default)) + (set! (-> *level* log-in-level) #f) 0 ;;(.mfc0 v1-154 Count) ;;(- v1-154 initial-timer) @@ -716,12 +716,12 @@ (case (-> obj status) (('loaded) (protect (loading-level - (-> *level* unknown-level-2) - (-> *level* unknown-level-1) + (-> *level* loading-level) + (-> *level* log-in-level) ) (set! loading-level (-> obj heap)) - (set! (-> *level* unknown-level-1) (the-as level (-> obj bsp))) - (set! (-> *level* unknown-level-2) obj) + (set! (-> *level* log-in-level) (the-as level (-> obj bsp))) + (set! (-> *level* loading-level) obj) ;; (dummy-18 (-> obj bsp)) TODO (set! (-> obj status) 'alive) ;; (dummy-15 *game-info*) TODO @@ -767,8 +767,8 @@ ) ) ) - (if (= (-> *level* unknown-level-1) (-> obj bsp)) - (set! (-> *level* unknown-level-1) #f) + (if (= (-> *level* log-in-level) (-> obj bsp)) + (set! (-> *level* log-in-level) #f) ) obj ) @@ -849,10 +849,10 @@ ) (set! (-> obj code-memory-start) (the pointer 0)) (set! (-> obj code-memory-end) (the pointer 0)) - (when (= (-> *level* unknown-level-2) obj) + (when (= (-> *level* loading-level) obj) (set! loading-level global) - (set! (-> *level* unknown-level-2) (-> *level* level-default)) - (set! (-> *level* unknown-level-1) #f) + (set! (-> *level* loading-level) (-> *level* level-default)) + (set! (-> *level* log-in-level) #f) ) ) obj @@ -1206,7 +1206,7 @@ ;; temp (format #t "(play ~A ~A) has been called!~%" use-vis arg1) (format 0 "(play ~A ~A) has been called!~%" use-vis arg1) - (kernel-shutdown) + ;;(kernel-shutdown) (let ((startup-level (case *kernel-boot-message* (('play) @@ -1589,7 +1589,7 @@ (when (zero? (-> *level* level0 art-group)) (let ((lev-group *level*)) (set! (-> lev-group vis?) #f) - (set! (-> lev-group unknown-level-2) (-> lev-group level-default)) + (set! (-> lev-group loading-level) (-> lev-group level-default)) (set! (-> lev-group level0 art-group) (new 'global 'load-dir-art-group 50 (-> lev-group level0))) (set! (-> lev-group level0 foreground-draw-engine 0) (new 'global 'engine 'draw 280)) (set! (-> lev-group level0 foreground-draw-engine 1) (new 'global 'engine 'draw 280)) diff --git a/goal_src/engine/load/file-io.gc b/goal_src/engine/load/file-io.gc index 16e0b8ccb9..8306d39e46 100644 --- a/goal_src/engine/load/file-io.gc +++ b/goal_src/engine/load/file-io.gc @@ -161,54 +161,55 @@ "Check if the version and kind in the info is valid. The version-override can specify a non-default version, or set to 0 for the default version" (let* ((expected-version - (if (zero? version-override) - (let ((v1-0 kind)) - (cond - ((or (= v1-0 (file-kind tpage)) (= v1-0 (file-kind dir-tpage))) - TPAGE_FILE_VERSION - ) - ((= kind (file-kind level-bt)) - LEVEL_BT_FILE_VERSION - ) - ((= v1-0 (file-kind art-group)) - ART_GROUP_FILE_VERSION - ) - ) - ) - version-override - ) - ) - (v1-1 kind) - (kind-name (cond - ((= v1-1 (file-kind tpage)) - "texture-page" + ((zero? version-override) + (case kind + (((file-kind tpage) (file-kind dir-tpage)) + 7 + ) + (((file-kind level-bt)) + 30 + ) + (((file-kind art-group)) + 6 + ) + ) ) - ((= kind (file-kind level-bt)) - "bsp-header" - ) - ((= v1-1 (file-kind art-group)) - "art-group" + (else + version-override ) ) ) + (v1-1 kind) + (kind-name (cond + ((= v1-1 (file-kind tpage)) + "texture-page" + ) + ((= v1-1 (file-kind level-bt)) + "bsp-header" + ) + ((= v1-1 (file-kind art-group)) + "art-group" + ) + ) + ) ) (cond ((not (name= (the-as basic (-> info file-type value)) kind-name)) (format 0 "ERROR: file ~A is of type ~S but needs to be ~S.~%" - (-> info file-name) - (-> info file-type) - kind-name - ) + (-> info file-name) + (-> info file-type) + kind-name + ) #f ) ((!= expected-version (-> info major-version)) (format 0 "ERROR: file ~A is version ~D.~D, but needs to be ~D.x~%" - (-> info file-name) - (-> info major-version) - (-> info minor-version) - expected-version - ) + (-> info file-name) + (-> info major-version) + (-> info minor-version) + expected-version + ) #f ) (else diff --git a/goal_src/engine/target/joint-mod-h.gc b/goal_src/engine/target/joint-mod-h.gc index da45d149cb..fd9f113d36 100644 --- a/goal_src/engine/target/joint-mod-h.gc +++ b/goal_src/engine/target/joint-mod-h.gc @@ -102,41 +102,39 @@ (defmethod set-mode! joint-mod ((obj joint-mod) (handler-mode joint-mod-handler-mode)) "Set up the joint-mod for the given mode. You can only pick one mode at a time." (set! (-> obj mode) handler-mode) - (let ((joint (-> obj joint)) - (mode handler-mode) - ) - (cond - ((= mode (joint-mod-handler-mode flex-blend)) + (let ((joint (-> obj joint))) + (case handler-mode + (((joint-mod-handler-mode flex-blend)) (set! (-> joint param0) #f) (set! (-> joint param1) #f) (set! (-> joint param2) #f) (set! (-> obj blend) 0.0) (set! (-> obj flex-blend) 1.0) ) - ((= mode (joint-mod-handler-mode reset)) + (((joint-mod-handler-mode reset)) (set! (-> joint param0) #f) (set! (-> joint param1) #f) (set! (-> joint param2) #f) (set! (-> obj blend) 0.0) (set! (-> obj shutting-down?) #f) ) - ((= mode (joint-mod-handler-mode look-at)) + (((joint-mod-handler-mode look-at)) (set! (-> joint param0) joint-mod-look-at-handler) (set! (-> joint param1) obj) (set! (-> joint param2) #f) ) - ((= mode (joint-mod-handler-mode world-look-at)) + (((joint-mod-handler-mode world-look-at)) (set! (-> joint param0) joint-mod-world-look-at-handler) (set! (-> joint param1) obj) (set! (-> joint param2) #f) ) - ((= mode (joint-mod-handler-mode rotate)) + (((joint-mod-handler-mode rotate)) (set! (-> joint param0) joint-mod-rotate-handler) (set! (-> joint param1) obj) (set! (-> joint param2) #f) (set! (-> obj blend) 1.0) ) - ((= mode (joint-mod-handler-mode joint-set)) + (((joint-mod-handler-mode joint-set)) (set! (-> joint param0) joint-mod-joint-set-handler) (set! (-> joint param1) obj) (set! (-> joint param2) #f) @@ -150,7 +148,7 @@ ) (set! (-> obj max-dist) (the-as float #f)) ) - ((= mode (joint-mod-handler-mode joint-set*)) + (((joint-mod-handler-mode joint-set*)) (set! (-> joint param0) joint-mod-joint-set*-handler) (set! (-> joint param1) obj) (set! (-> joint param2) #f) diff --git a/goal_src/engine/ui/credits.gc b/goal_src/engine/ui/credits.gc index 8e19d6bf15..7c9273b128 100644 --- a/goal_src/engine/ui/credits.gc +++ b/goal_src/engine/ui/credits.gc @@ -99,15 +99,13 @@ (s3-0 (lookup-text! *common-text* (the-as game-text-id s2-0) #t)) ) (when (= s2-0 3841) - (let ((v1-18 (scf-get-territory))) - (cond - ((= v1-18 1) - (set! s3-0 (lookup-text! *common-text* (game-text-id europe) #t)) - ) - ((= v1-18 2) - (set! s3-0 (lookup-text! *common-text* (game-text-id inc) #t)) - ) - ) + (case (scf-get-territory) + ((1) + (set! s3-0 (lookup-text! *common-text* (game-text-id europe) #t)) + ) + ((2) + (set! s3-0 (lookup-text! *common-text* (game-text-id inc) #t)) + ) ) ) (when s3-0 diff --git a/goal_src/engine/ui/progress-h.gc b/goal_src/engine/ui/progress-h.gc index 09f4281ab2..92cbe15957 100644 --- a/goal_src/engine/ui/progress-h.gc +++ b/goal_src/engine/ui/progress-h.gc @@ -126,7 +126,7 @@ (dummy-17 () none 17) (dummy-18 () none 18) (dummy-19 () none 19) - (dummy-20 () none 20) + (hidden? (_type_) symbol 20) (dummy-21 () none 21) (dummy-22 () none 22) (TODO-RENAME-23 (_type_ symbol symbol) none 23) @@ -176,4 +176,6 @@ (define-extern *level-task-data* (array level-tasks-info)) (define-extern *level-task-data-remap* (array int32)) (define-extern get-game-count (function int count-info)) -(define-extern activate-orb-all (function int int)) ;; maybe in hud? \ No newline at end of file +(define-extern activate-orb-all (function int int)) ;; maybe in hud? +(define-extern progress-allowed? (function symbol)) +(define-extern pause-allowed? (function symbol)) diff --git a/goal_src/engine/ui/progress/progress.gc b/goal_src/engine/ui/progress/progress.gc index 75ff34cc62..fa963f8d4b 100644 --- a/goal_src/engine/ui/progress/progress.gc +++ b/goal_src/engine/ui/progress/progress.gc @@ -8,4 +8,10 @@ (defmethod relocate game-count-info ((this game-count-info) (offset int)) "Load in the game-count-info. This is a bit of a hack." (set! *game-counts* this) - ) \ No newline at end of file + ) + +(defmethod hidden? progress ((obj progress)) + (or (not *progress-process*) + (= (-> *progress-process* 0 in-out-position) 4096) + ) + ) diff --git a/goal_src/engine/ui/text-h.gc b/goal_src/engine/ui/text-h.gc index cb588379e6..fd5327f1cd 100644 --- a/goal_src/engine/ui/text-h.gc +++ b/goal_src/engine/ui/text-h.gc @@ -220,10 +220,10 @@ ) ) -;; todo, need support for array (define *text-group-names* (new 'static 'boxed-array :type string :length 1 "common")) +;; The heap for storing text (define *common-text-heap* (new 'global 'kheap)) -;; definition for symbol *common-text*, type game-text-info +;; will store the COMMON text when it is loaded. (define *common-text* (the-as game-text-info #f)) diff --git a/goal_src/engine/ui/text.gc b/goal_src/engine/ui/text.gc index 821605ef31..af762a8bfd 100644 --- a/goal_src/engine/ui/text.gc +++ b/goal_src/engine/ui/text.gc @@ -5,9 +5,9 @@ ;; name in dgo: text ;; dgos: GAME, ENGINE -(define *game-text-word* (new 'global 'string 256 (the string '#f))) +(define *game-text-word* (new 'global 'string 128 (the string '#f))) (define *game-text-line* (new 'global 'string 256 (the string '#f))) -(define *level-text-file-load-flag* '#t) +(define *level-text-file-load-flag* #t) ;; allocate the game text heap if it isn't already allocated. (when (= 0 (-> *common-text-heap* base)) @@ -42,8 +42,34 @@ obj ) -;; todo method 8 -;; todo method 9 +(defmethod mem-usage game-text-info ((obj game-text-info) (arg0 memory-usage-block) (arg1 int)) + "Get the memory usage." + (set! (-> arg0 length) (max 81 (-> arg0 length))) + (set! (-> arg0 data 80 name) "string") + (set! (-> arg0 data 80 count) (+ (-> arg0 data 80 count) 1)) + + ;; get the size of this structure + (let ((v1-6 (asize-of obj))) + (set! (-> arg0 data 80 used) (+ (-> arg0 data 80 used) v1-6)) + (set! (-> arg0 data 80 total) + (+ (-> arg0 data 80 total) (logand -16 (+ v1-6 15))) + ) + ) + + ;; get the size of all the strings + (dotimes (s4-0 (-> obj length)) + (set! (-> arg0 length) (max 81 (-> arg0 length))) + (set! (-> arg0 data 80 name) "string") + (set! (-> arg0 data 80 count) (+ (-> arg0 data 80 count) 1)) + (let ((v1-18 (asize-of (-> obj data s4-0 text)))) + (set! (-> arg0 data 80 used) (+ (-> arg0 data 80 used) v1-18)) + (set! (-> arg0 data 80 total) + (+ (-> arg0 data 80 total) (logand -16 (+ v1-18 15))) + ) + ) + ) + obj + ) (defmethod lookup-text! game-text-info ((obj game-text-info) (arg0 game-text-id) (arg1 symbol)) "Look up text by ID. Will return the string. @@ -83,8 +109,103 @@ ) ) ) -;; todo text-is-loading + +(define text-is-loading #f) + ;; todo load-game-text-info + +(defun load-game-text-info ((txt-name string) (curr-text symbol) (heap kheap)) + "Load text, if needed." + (local-vars + (v0-2 int) + (heap-sym-heap game-text-info) + (lang int) + (load-status int) + (heap-free int) + ) + (set! heap-sym-heap (the-as game-text-info (-> curr-text value))) + (set! lang (-> *setting-control* current language)) + (set! load-status 0) + (set! heap-free (&- (-> heap top) (the-as uint (-> heap base)))) + (if (and (= (scf-get-territory) 1) (zero? lang)) + (set! lang 6) + ) + (when (or (= heap-sym-heap #f) + (!= (-> heap-sym-heap language-id) lang) + (not (string= (-> heap-sym-heap group-name) txt-name)) + ) + (let ((v1-16 heap)) + (set! (-> v1-16 current) (-> v1-16 base)) + ) + (b! #t cfg-14) + (label cfg-13) + (load-dbg "Strange error during text load.~%") + (set! v0-2 0) + (b! #t cfg-27) + (label cfg-14) + (let ((s3-0 str-load)) + (format (clear *temp-string*) "~D~S.TXT" lang txt-name) + ;; this branch is super weird. + (b! (not (s3-0 + *temp-string* + -1 + (logand -64 (&+ (-> heap current) 63)) + (&- (-> heap top) (the-as uint (-> heap current))) + ) + ) + cfg-13 + ) + ) + (label cfg-16) + (let ((v1-20 (str-load-status (the-as (pointer int32) (& load-status))))) + (cond + ((= v1-20 'error) + (format 0 "Error loading text~%") + (return 0) + ) + ((>= load-status (+ heap-free -300)) + (format 0 "Game text heap overrun!~%") + (return 0) + ) + ((= v1-20 'busy) + (begin + (nop!) + (nop!) + (nop!) + (nop!) + (nop!) + (nop!) + (goto cfg-16) + ) + ) + ) + ) + (let ((s2-1 (logand -64 (&+ (-> heap current) 63)))) + (flush-cache 0) + (let ((s3-1 link)) + (format (clear *temp-string*) "~D~S.TXT" lang txt-name) + (set! + (-> curr-text value) + (s3-1 s2-1 (-> *temp-string* data) load-status heap 0) + ) + ) + ) + (if (<= (the-as int (-> curr-text value)) 0) + (set! (-> curr-text value) (the-as object #f)) + ) + ) + (set! v0-2 0) + (label cfg-27) + v0-2 + ) + +(defun load-level-text-files ((arg0 int)) + (if (or *level-text-file-load-flag* (>= arg0 0)) + (load-game-text-info "common" '*common-text* *common-text-heap*) + ) + 0 + (none) + ) ;; todo load-level-text-files ;; todo draw-debug-text-box ;; todo set-font-color-alpha diff --git a/goal_src/kernel-defs.gc b/goal_src/kernel-defs.gc index 40a14b706b..4c411c99ac 100644 --- a/goal_src/kernel-defs.gc +++ b/goal_src/kernel-defs.gc @@ -117,7 +117,7 @@ (define-extern *debug-segment* symbol) (define-extern *enable-method-set* int) -;; *boot-video-mode* ? +(define-extern *boot-video-mode* int) (define-extern *deci-count* int) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -135,6 +135,7 @@ ;;;; kmachine - InitMachineScheme ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; put-display-env ;; syncv (define-extern sync-path (function int int none)) @@ -159,13 +160,13 @@ ;; file-stream-seek (define-extern file-stream-read (function file-stream pointer int int)) (define-extern file-stream-write (function file-stream pointer uint uint)) -;; scf-get-language +(define-extern scf-get-language (function uint)) ;; scf-get-time -;; scf-get-aspect -;; scf-get-volume -;; scf-get-territory -;; scf-get-timeout -;; scf-get-inactive-timeout +(define-extern scf-get-aspect (function uint)) +(define-extern scf-get-volume (function int)) +(define-extern scf-get-territory (function int)) +(define-extern scf-get-timeout (function int)) +(define-extern scf-get-inactive-timeout (function int)) ;; dma-to-iop (define-extern kernel-shutdown (function none)) ;; aybabtu diff --git a/goal_src/kernel/gkernel.gc b/goal_src/kernel/gkernel.gc index dd5d19f21e..a5f7334fa7 100644 --- a/goal_src/kernel/gkernel.gc +++ b/goal_src/kernel/gkernel.gc @@ -2434,12 +2434,11 @@ (set! pp obj) (let ((cur (-> pp stack-frame-top))) (while cur - (when (or - (= (-> cur type) protect-frame) - (= (-> cur type) state) - ) - ;; we're a state or protect-frame, we can exit. - ((-> (the protect-frame cur) exit)) + (case (-> cur type) + ((protect-frame state) + ;; we're a state or protect-frame, we can exit. + ((-> (the-as protect-frame cur) exit)) + ) ) (set! cur (-> cur next)) ) diff --git a/goal_src/kernel/gstate.gc b/goal_src/kernel/gstate.gc index 1c9f7fc8d3..23cb1b23e5 100644 --- a/goal_src/kernel/gstate.gc +++ b/goal_src/kernel/gstate.gc @@ -218,11 +218,10 @@ There are several ways to "go" ;; loop through current stack frames (let ((frame (-> pp stack-frame-top))) (while frame - (let ((typ (-> frame type))) - (if (or (= typ protect-frame) (= typ state)) - ;; if we got a protect-frame or a state, call exit handler - ((-> (the protect-frame frame) exit)) - ) + (case (-> frame type) + ((protect-frame state) + ((-> (the-as protect-frame frame) exit)) + ) ) (set! frame (-> frame next)) ) diff --git a/goalc/compiler/Compiler.h b/goalc/compiler/Compiler.h index 8f6ef2268d..56353295d1 100644 --- a/goalc/compiler/Compiler.h +++ b/goalc/compiler/Compiler.h @@ -281,10 +281,11 @@ class Compiler { StructureType* type, Env* env, RegVal* reg, - const Field& f); - Val* generate_inspector_for_structured_type(const goos::Object& form, - Env* env, - StructureType* type); + const Field& f, + int tab_count); + Val* generate_inspector_for_structure_type(const goos::Object& form, + Env* env, + StructureType* structure_type); Val* generate_inspector_for_bitfield_type(const goos::Object& form, Env* env, BitFieldType* type); RegVal* compile_get_method_of_type(const goos::Object& form, const TypeSpec& compile_time_type, diff --git a/goalc/compiler/compilation/Static.cpp b/goalc/compiler/compilation/Static.cpp index 62e4e17703..1d9b55a507 100644 --- a/goalc/compiler/compilation/Static.cpp +++ b/goalc/compiler/compilation/Static.cpp @@ -230,6 +230,15 @@ void Compiler::compile_static_structure_inline(const goos::Object& form, typecheck(form, TypeSpec("float"), sr.typespec()); u64 value = sr.constant_u64(); memcpy(structure->data.data() + field_offset, &value, sizeof(float)); + } else if (field_info.type.base_type() == "inline-array") { + auto sr = compile_static(field_value, env); + if (!sr.is_reference()) { + throw_compiler_error(form, "Invalid definition of field {}", field_info.field.name()); + } + typecheck(form, field_info.type, sr.typespec()); + assert(sr.reference()->get_addr_offset() == 0); + structure->add_pointer_record(field_offset, sr.reference(), + sr.reference()->get_addr_offset()); } else { diff --git a/goalc/compiler/compilation/Type.cpp b/goalc/compiler/compilation/Type.cpp index 7bebbc9497..58719ca3ec 100644 --- a/goalc/compiler/compilation/Type.cpp +++ b/goalc/compiler/compilation/Type.cpp @@ -137,58 +137,63 @@ void Compiler::generate_field_description(const goos::Object& form, StructureType* type, Env* env, RegVal* reg, - const Field& f) { + const Field& f, + int tab_count) { std::string str_template; + std::string tabs; + for (int i = 0; i < tab_count; i++) { + tabs += "~T"; + } std::vector format_args = {}; if (f.name() == "type" && f.offset() == 0) { // type return; } else if (f.is_array() && !f.is_dynamic()) { // Arrays - str_template += fmt::format("~T{}[{}] @ #x~X~%", f.name(), f.array_size()); + str_template += fmt::format("{}{}[{}] @ #x~X~%", tabs, f.name(), f.array_size()); format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); } else if (f.is_dynamic()) { // Dynamic Field - str_template += fmt::format("~T{}[0] @ #x~X~%", f.name()); + str_template += fmt::format("{}{}[0] @ #x~X~%", tabs, f.name()); format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); } else if (m_ts.tc(m_ts.make_typespec("basic"), f.type()) || m_ts.tc(m_ts.make_typespec("binteger"), f.type()) || m_ts.tc(m_ts.make_typespec("pair"), f.type())) { // basic, binteger, pair - str_template += fmt::format("~T{}: ~A~%", f.name()); + str_template += fmt::format("{}{}: ~A~%", tabs, f.name()); format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); } else if (m_ts.tc(m_ts.make_typespec("structure"), f.type())) { // Structure - str_template += fmt::format("~T{}: #<{} @ #x~X>~%", f.name(), f.type().print()); + str_template += fmt::format("{}{}: #<{} @ #x~X>~%", tabs, f.name(), f.type().print()); format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); } else if (m_ts.tc(m_ts.make_typespec("integer"), f.type())) { // Integer if (m_ts.lookup_type(f.type())->get_load_size() > 8) { - str_template += fmt::format("~T{}: ~%", f.name()); + str_template += fmt::format("{}: ~%", tabs, f.name()); } else { - str_template += fmt::format("~T{}: ~D~%", f.name()); + str_template += fmt::format("{}{}: ~D~%", tabs, f.name()); format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); } } else if (m_ts.tc(m_ts.make_typespec("float"), f.type())) { // Float - str_template += fmt::format("~T{}: ~f~%", f.name()); + str_template += fmt::format("{}{}: ~f~%", tabs, f.name()); format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); } else if (m_ts.tc(m_ts.make_typespec("pointer"), f.type())) { // Pointers - str_template += fmt::format("~T{}: #x~X~%", f.name()); + str_template += fmt::format("{}{}: #x~X~%", tabs, f.name()); format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); } else { // Otherwise, we havn't implemented it! - str_template += fmt::format("~T{}: Undefined!~%", f.name()); + str_template += fmt::format("{}{}: Undefined!~%", tabs, f.name()); } compile_format_string(form, env, str_template, format_args); } -Val* Compiler::generate_inspector_for_structured_type(const goos::Object& form, - Env* env, - StructureType* structure_type) { +Val* Compiler::generate_inspector_for_structure_type(const goos::Object& form, + Env* env, + StructureType* structure_type) { // Create a function environment to hold the code for the inspect method. The name is just for // debugging. auto method_env = std::make_unique( @@ -207,18 +212,39 @@ Val* Compiler::generate_inspector_for_structured_type(const goos::Object& form, // Inform the compiler that `input`'s value will be written to `rdi` (first arg register) method_env->emit(std::make_unique(std::vector{input})); - RegVal* type_name = nullptr; - if (dynamic_cast(structure_type)) { - type_name = get_field_of_structure(structure_type, input, "type", method_env.get()) - ->to_gpr(method_env.get()); - } else { - type_name = - compile_get_sym_obj(structure_type->get_name(), method_env.get())->to_gpr(method_env.get()); - } - compile_format_string(form, method_env.get(), "[~8x] ~A~%", {input, type_name}); + // there's a special case for children of process. + if (m_ts.fully_defined_type_exists("process") && + m_ts.tc(TypeSpec("process"), TypeSpec(structure_type->get_name()))) { + // first, call the inspect method of our parent type. + auto parent_type_name = structure_type->get_parent(); + auto parent_inspect = + compile_get_method_of_type(form, TypeSpec(parent_type_name), "inspect", method_env.get()); + std::vector args = {input}; + compile_real_function_call(form, parent_inspect, args, method_env.get(), parent_type_name); + auto parent_type_info = dynamic_cast(m_ts.lookup_type(parent_type_name)); + if (!parent_type_info) { + throw_compiler_error(form, "Got an invalid parent type in process inspect method"); + } - for (const Field& f : structure_type->fields()) { - generate_field_description(form, structure_type, method_env.get(), input, f); + for (size_t i = parent_type_info->fields().size(); i < structure_type->fields().size(); i++) { + generate_field_description(form, structure_type, method_env.get(), input, + structure_type->fields().at(i), 2); + } + + } else { + RegVal* type_name = nullptr; + if (dynamic_cast(structure_type)) { + type_name = get_field_of_structure(structure_type, input, "type", method_env.get()) + ->to_gpr(method_env.get()); + } else { + type_name = compile_get_sym_obj(structure_type->get_name(), method_env.get()) + ->to_gpr(method_env.get()); + } + compile_format_string(form, method_env.get(), "[~8x] ~A~%", {input, type_name}); + + for (const Field& f : structure_type->fields()) { + generate_field_description(form, structure_type, method_env.get(), input, f, 1); + } } method_env->emit_ir(method_env->make_gpr(input->type()), input, @@ -343,7 +369,7 @@ Val* Compiler::compile_deftype(const goos::Object& form, const goos::Object& res // Auto-generate (inspect) method auto as_structure_type = dynamic_cast(result.type_info); if (as_structure_type) { // generate the inspect method - generate_inspector_for_structured_type(form, env, as_structure_type); + generate_inspector_for_structure_type(form, env, as_structure_type); } else { auto as_bitfield_type = dynamic_cast(result.type_info); if (as_bitfield_type && as_bitfield_type->get_load_size() <= 8) { // Avoid 128-bit bitfields diff --git a/test/decompiler/reference/engine/anim/mspace-h_REF.gc b/test/decompiler/reference/engine/anim/mspace-h_REF.gc index 8f22ddd47c..3cde6b1ee5 100644 --- a/test/decompiler/reference/engine/anim/mspace-h_REF.gc +++ b/test/decompiler/reference/engine/anim/mspace-h_REF.gc @@ -69,7 +69,8 @@ ;; definition of type skeleton (deftype skeleton (inline-array-class) - () + ((bones bone :inline :dynamic :offset-assert 16) + ) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 @@ -80,7 +81,7 @@ (format #t "[~8x] ~A~%" obj (-> obj type)) (format #t "~Tlength: ~D~%" (-> obj length)) (format #t "~Tallocated-length: ~D~%" (-> obj allocated-length)) - (format #t "~Tdata[0] @ #x~X~%" (-> obj _data)) + (format #t "~Tdata[0] @ #x~X~%" (-> obj bones)) obj ) diff --git a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc index fd3d5409ce..c185cf2d93 100644 --- a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc @@ -726,9 +726,11 @@ (set! (-> obj event-other) #f) (set! (-> obj riders) #f) (set! (-> obj root-prim) #f) - (let ((v1-5 (-> proc type symbol))) - (if (= v1-5 'camera) - (set! (-> obj pat-ignore-mask) (the-as uint 2)) + (case (-> proc type symbol) + (('camera) + (set! (-> obj pat-ignore-mask) (the-as uint 2)) + ) + (else (set! (-> obj pat-ignore-mask) (the-as uint 1)) ) ) diff --git a/test/decompiler/reference/engine/data/art-h_REF.gc b/test/decompiler/reference/engine/data/art-h_REF.gc index f804c30b4e..dbdcc3b7a2 100644 --- a/test/decompiler/reference/engine/data/art-h_REF.gc +++ b/test/decompiler/reference/engine/data/art-h_REF.gc @@ -264,7 +264,8 @@ ;; definition of type art-mesh-anim (deftype art-mesh-anim (art-element) - () + ((data basic :dynamic :offset-assert 32) + ) :method-count-assert 13 :size-assert #x20 :flag-assert #xd00000020 diff --git a/test/decompiler/reference/engine/debug/menu_REF.gc b/test/decompiler/reference/engine/debug/menu_REF.gc index 55d6256887..9bc7cb216f 100644 --- a/test/decompiler/reference/engine/debug/menu_REF.gc +++ b/test/decompiler/reference/engine/debug/menu_REF.gc @@ -762,14 +762,6 @@ ;; WARN: Stack slot load mismatch: defined as size 4, got size 16 -;; WARN: Stack slot load mismatch: defined as size 4, got size 16 - -;; WARN: Stack slot load mismatch: defined as size 4, got size 16 - -;; WARN: Stack slot load mismatch: defined as size 4, got size 16 - -;; WARN: Stack slot load mismatch: defined as size 4, got size 16 - ;; Used lq/sq (defun debug-menu-make-from-template ((arg0 debug-menu-context) (arg1 pair)) (local-vars @@ -1084,7 +1076,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 68 + (bucket-id debug-draw1) s4-0 (the-as (pointer dma-tag) a3-1) ) @@ -1149,7 +1141,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 68 + (bucket-id debug-draw1) s5-0 (the-as (pointer dma-tag) a3-1) ) @@ -1204,7 +1196,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 68 + (bucket-id debug-draw1) s5-0 (the-as (pointer dma-tag) a3-1) ) @@ -1321,7 +1313,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 68 + (bucket-id debug-draw1) s1-0 (the-as (pointer dma-tag) a3-2) ) @@ -1361,7 +1353,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 68 + (bucket-id debug-draw1) sv-32 (the-as (pointer dma-tag) a3-3) ) diff --git a/test/decompiler/reference/engine/dma/dma-bucket_REF.gc b/test/decompiler/reference/engine/dma/dma-bucket_REF.gc index 56bb0edc41..fa8b13f8ba 100644 --- a/test/decompiler/reference/engine/dma/dma-bucket_REF.gc +++ b/test/decompiler/reference/engine/dma/dma-bucket_REF.gc @@ -39,7 +39,11 @@ ;; definition for function dma-bucket-insert-tag (defun dma-bucket-insert-tag - ((base dma-bucket) (idx int) (tag-start pointer) (tag-end (pointer dma-tag))) + ((base dma-bucket) + (idx bucket-id) + (tag-start pointer) + (tag-end (pointer dma-tag)) + ) (let ((bucket (the-as dma-bucket (+ (the-as uint base) (the-as uint (* idx 16))))) ) diff --git a/test/decompiler/reference/engine/draw/draw-node-h_REF.gc b/test/decompiler/reference/engine/draw/draw-node-h_REF.gc index 178cfec5ba..a6f7b2ab9a 100644 --- a/test/decompiler/reference/engine/draw/draw-node-h_REF.gc +++ b/test/decompiler/reference/engine/draw/draw-node-h_REF.gc @@ -25,7 +25,15 @@ obj ) -;; type drawable-inline-array-node is defined here, but it is unknown to the decompiler +;; definition of type drawable-inline-array-node +(deftype drawable-inline-array-node (drawable-inline-array) + ((data draw-node 1 :inline :offset-assert 32) + (pad uint32 :offset-assert 64) + ) + :method-count-assert 18 + :size-assert #x44 + :flag-assert #x1200000044 + ) ;; definition of type draw-node-dma (deftype draw-node-dma (structure) diff --git a/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc b/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc index becf8f5023..447ff3b8ee 100644 --- a/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc +++ b/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc @@ -97,8 +97,8 @@ ;; definition of type ambient-list (deftype ambient-list (structure) - ((num-items int32 :offset-assert 0) - (items uint32 2048 :offset-assert 4) + ((num-items int32 :offset-assert 0) + (items drawable-ambient 2048 :offset-assert 4) ) :method-count-assert 9 :size-assert #x2004 diff --git a/test/decompiler/reference/engine/draw/drawable-h_REF.gc b/test/decompiler/reference/engine/draw/drawable-h_REF.gc index 2da5a72b28..deb9f044e5 100644 --- a/test/decompiler/reference/engine/draw/drawable-h_REF.gc +++ b/test/decompiler/reference/engine/draw/drawable-h_REF.gc @@ -18,7 +18,7 @@ (dummy-14 () none 14) (dummy-15 (_type_) none 15) (dummy-16 (_type_ object object) object 16) - (dummy-17 () none 17) + (dummy-17 (_type_ sphere int ambient-list) none 17) ) ) diff --git a/test/decompiler/reference/engine/game/fact-h_REF.gc b/test/decompiler/reference/engine/game/fact-h_REF.gc index f67b73c6c2..a9b980840f 100644 --- a/test/decompiler/reference/engine/game/fact-h_REF.gc +++ b/test/decompiler/reference/engine/game/fact-h_REF.gc @@ -68,41 +68,39 @@ ;; definition for function pickup-type->string (defun pickup-type->string ((arg0 pickup-type)) - (let ((v1-0 arg0)) - (cond - ((= v1-0 (pickup-type eco-pill-random)) + (case arg0 + (((pickup-type eco-pill-random)) "eco-pill-random" ) - ((= v1-0 (pickup-type buzzer)) - "buzzer" - ) - ((= v1-0 (pickup-type eco-pill)) - "eco-pill" - ) - ((= v1-0 (pickup-type fuel-cell)) - "fuel-cell" - ) - ((= v1-0 (pickup-type money)) - "money" - ) - ((= v1-0 (pickup-type eco-green)) - "eco-green" - ) - ((= v1-0 (pickup-type eco-blue)) - "eco-blue" - ) - ((= v1-0 (pickup-type eco-red)) - "eco-red" - ) - ((= v1-0 (pickup-type eco-yellow)) - "eco-yellow" - ) - ((= v1-0 (pickup-type none)) - "none" - ) - (else - "*unknown*" - ) + (((pickup-type buzzer)) + "buzzer" + ) + (((pickup-type eco-pill)) + "eco-pill" + ) + (((pickup-type fuel-cell)) + "fuel-cell" + ) + (((pickup-type money)) + "money" + ) + (((pickup-type eco-green)) + "eco-green" + ) + (((pickup-type eco-blue)) + "eco-blue" + ) + (((pickup-type eco-red)) + "eco-red" + ) + (((pickup-type eco-yellow)) + "eco-yellow" + ) + (((pickup-type none)) + "none" + ) + (else + "*unknown*" ) ) ) diff --git a/test/decompiler/reference/engine/game/game-info-h_REF.gc b/test/decompiler/reference/engine/game/game-info-h_REF.gc index 126cf834a7..1323799562 100644 --- a/test/decompiler/reference/engine/game/game-info-h_REF.gc +++ b/test/decompiler/reference/engine/game/game-info-h_REF.gc @@ -200,8 +200,8 @@ (auto-save-status uint32 :offset-assert 280) (auto-save-card int32 :offset-assert 284) (auto-save-which int32 :offset-assert 288) - (pov-camera-handle uint64 :offset-assert 296) - (other-camera-handle uint64 :offset-assert 304) + (pov-camera-handle handle :offset-assert 296) + (other-camera-handle handle :offset-assert 304) (death-pos vector-array :offset-assert 312) (dummy basic :offset-assert 316) (auto-save-count int32 :offset-assert 320) diff --git a/test/decompiler/reference/engine/game/settings-h_REF.gc b/test/decompiler/reference/engine/game/settings-h_REF.gc index d0ac2a5d6f..a5d94931ef 100644 --- a/test/decompiler/reference/engine/game/settings-h_REF.gc +++ b/test/decompiler/reference/engine/game/settings-h_REF.gc @@ -7,7 +7,7 @@ (sfx-volume float :offset-assert 4) (music-volume float :offset-assert 8) (dialog-volume float :offset-assert 12) - (process-mask uint32 :offset-assert 16) + (process-mask process-mask :offset-assert 16) (common-page int32 :offset-assert 20) (language int64 :offset-assert 24) (screenx int32 :offset-assert 32) diff --git a/test/decompiler/reference/engine/game/settings_REF.gc b/test/decompiler/reference/engine/game/settings_REF.gc index 39ac63e377..77d01c1b88 100644 --- a/test/decompiler/reference/engine/game/settings_REF.gc +++ b/test/decompiler/reference/engine/game/settings_REF.gc @@ -7,126 +7,130 @@ (s4-0 (-> arg0 alive-list-end prev0)) ) (while (!= (the-as connectable conn) (-> arg0 alive-list)) - (let ((v1-1 (-> conn param0))) - (cond - ((= v1-1 'border-mode) + (case (-> conn param0) + (('border-mode) (set! (-> obj border-mode) (the-as symbol (-> conn param1))) ) - ((= v1-1 'allow-look-around) - (set! (-> obj allow-look-around) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'ocean-off) - (set! (-> obj ocean-off) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'music) - (set! (-> obj music) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'process-mask) - (let ((v1-6 (-> conn param1))) - (cond - ((= (the-as symbol v1-6) 'set) - (set! - (-> obj process-mask) - (logior - (-> obj process-mask) - (the-as uint (the-as int (-> conn param3))) - ) - ) - ) - ((= v1-6 'clear) - (set! - (-> obj process-mask) - (logand - (-> obj process-mask) - (the-as uint (lognot (the-as uint (-> conn param3)))) - ) - ) - ) - ((= v1-6 'abs) - (set! + (('allow-look-around) + (set! (-> obj allow-look-around) (the-as symbol (-> conn param1))) + ) + (('ocean-off) + (set! (-> obj ocean-off) (the-as symbol (-> conn param1))) + ) + (('music) + (set! (-> obj music) (the-as symbol (-> conn param1))) + ) + (('process-mask) + (case (-> conn param1) + (('set) + (set! + (-> obj process-mask) + (logior (-> obj process-mask) (the-as uint (the-as int (-> conn param3))) ) ) ) - ) - ) - ((= v1-1 'sfx-volume) - (when - (or - (zero? - (logand - (-> *kernel-context* prevent-from-run) - (process-mask progress) - ) - ) - (let ((v1-18 (get-process conn)) - (a0-22 *progress-process*) - ) - (= v1-18 (if a0-22 - (-> a0-22 0 self) - ) - ) + (('clear) + (set! + (-> obj process-mask) + (logand + (-> obj process-mask) + (the-as uint (the-as uint (lognot (the-as uint (-> conn param3))))) ) ) - (let ((v1-20 (the-as symbol (-> conn param1)))) - (if (= v1-20 'rel) + ) + (('abs) + (set! + (-> obj process-mask) + (the-as process-mask (the-as int (-> conn param3))) + ) + ) + ) + ) + (('sfx-volume) + (when + (or + (zero? + (logand (-> *kernel-context* prevent-from-run) (process-mask progress)) + ) + (let ((v1-18 (get-process conn)) + (a0-22 *progress-process*) + ) + (= v1-18 (if a0-22 + (-> a0-22 0 self) + ) + ) + ) + ) + (case (the-as symbol (-> conn param1)) + (('rel) (set! (-> obj sfx-volume) (* (* 0.01 (the-as float (-> conn param2))) (-> obj sfx-volume)) ) - (set! (-> obj sfx-volume) (the-as float (-> conn param2))) ) + (else + (set! (-> obj sfx-volume) (the-as float (-> conn param2))) ) ) ) - ((= v1-1 'music-volume) - (let ((v1-25 (the-as symbol (-> conn param1)))) - (if (= v1-25 'rel) + ) + (('music-volume) + (case (the-as symbol (-> conn param1)) + (('rel) (set! (-> obj music-volume) (* (* 0.01 (the-as float (-> conn param2))) (-> obj music-volume)) ) - (set! (-> obj music-volume) (the-as float (-> conn param2))) ) + (else + (set! (-> obj music-volume) (the-as float (-> conn param2))) ) ) - ((= v1-1 'ambient-volume) - (let ((v1-30 (the-as symbol (-> conn param1)))) - (if (= v1-30 'rel) + ) + (('ambient-volume) + (case (the-as symbol (-> conn param1)) + (('rel) (set! (-> obj ambient-volume) (* (* 0.01 (the-as float (-> conn param2))) (-> obj ambient-volume)) ) - (set! (-> obj ambient-volume) (the-as float (-> conn param2))) ) + (else + (set! (-> obj ambient-volume) (the-as float (-> conn param2))) ) ) - ((= v1-1 'dialog-volume) - (let ((v1-35 (the-as symbol (-> conn param1)))) - (if (= v1-35 'rel) + ) + (('dialog-volume) + (case (the-as symbol (-> conn param1)) + (('rel) (set! (-> obj dialog-volume) (* (* 0.01 (the-as float (-> conn param2))) (-> obj dialog-volume)) ) - (set! (-> obj dialog-volume) (the-as float (-> conn param2))) ) + (else + (set! (-> obj dialog-volume) (the-as float (-> conn param2))) ) ) - ((= v1-1 'sfx-volume-movie) - (let ((v1-40 (the-as symbol (-> conn param1)))) - (if (= v1-40 'rel) + ) + (('sfx-volume-movie) + (case (the-as symbol (-> conn param1)) + (('rel) (set! (-> obj sfx-volume-movie) (* (* 0.01 (the-as float (-> conn param2))) (-> obj sfx-volume-movie)) ) - (set! (-> obj sfx-volume-movie) (the-as float (-> conn param2))) ) + (else + (set! (-> obj sfx-volume-movie) (the-as float (-> conn param2))) ) ) - ((= v1-1 'music-volume-movie) - (let ((v1-45 (the-as symbol (-> conn param1)))) - (if (= v1-45 'rel) + ) + (('music-volume-movie) + (case (the-as symbol (-> conn param1)) + (('rel) (set! (-> obj music-volume-movie) (* @@ -134,13 +138,15 @@ (-> obj music-volume-movie) ) ) - (set! (-> obj music-volume-movie) (the-as float (-> conn param2))) ) + (else + (set! (-> obj music-volume-movie) (the-as float (-> conn param2))) ) ) - ((= v1-1 'ambient-volume-movie) - (let ((v1-50 (the-as symbol (-> conn param1)))) - (if (= v1-50 'rel) + ) + (('ambient-volume-movie) + (case (the-as symbol (-> conn param1)) + (('rel) (set! (-> obj ambient-volume-movie) (* @@ -148,13 +154,15 @@ (-> obj ambient-volume-movie) ) ) - (set! (-> obj ambient-volume-movie) (the-as float (-> conn param2))) ) + (else + (set! (-> obj ambient-volume-movie) (the-as float (-> conn param2))) ) ) - ((= v1-1 'dialog-volume-hint) - (let ((v1-55 (the-as symbol (-> conn param1)))) - (if (= v1-55 'rel) + ) + (('dialog-volume-hint) + (case (the-as symbol (-> conn param1)) + (('rel) (set! (-> obj dialog-volume-hint) (* @@ -162,84 +170,83 @@ (-> obj dialog-volume-hint) ) ) - (set! (-> obj dialog-volume-hint) (the-as float (-> conn param2))) ) + (else + (set! (-> obj dialog-volume-hint) (the-as float (-> conn param2))) ) ) - ((= v1-1 'sound-flava) - (when (>= (the-as float (-> conn param2)) (-> obj sound-flava-priority)) - (set! (-> obj sound-flava) (the-as uint (the-as int (-> conn param3)))) - (set! (-> obj sound-flava-priority) (the-as float (-> conn param2))) - ) + ) + (('sound-flava) + (when (>= (the-as float (-> conn param2)) (-> obj sound-flava-priority)) + (set! (-> obj sound-flava) (the-as uint (the-as int (-> conn param3)))) + (set! (-> obj sound-flava-priority) (the-as float (-> conn param2))) ) - ((= v1-1 'bg-r) - (set! (-> obj bg-r) (the-as float (-> conn param2))) - ) - ((= v1-1 'bg-g) - (set! (-> obj bg-g) (the-as float (-> conn param2))) - ) - ((= v1-1 'bg-b) - (set! (-> obj bg-b) (the-as float (-> conn param2))) - ) - ((= v1-1 'bg-a) - (set! (-> obj bg-a) (the-as float (-> conn param2))) - ) - ((= v1-1 'bg-a-speed) - (set! (-> obj bg-a-speed) (the-as float (-> conn param2))) - ) - ((= v1-1 'bg-a-force) - (set! (-> obj bg-a-force) (the-as float (-> conn param2))) - ) - ((= v1-1 'language) - (set! (-> obj language) (the-as int (-> conn param3))) - ) - ((= v1-1 'vibration) - (set! (-> obj vibration) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'auto-save) - (set! (-> obj auto-save) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'allow-pause) - (set! (-> obj allow-pause) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'allow-progress) - (set! (-> obj allow-progress) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'play-hints) - (set! (-> obj play-hints) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'movie) - (set! (-> obj movie) (the-as (pointer progress) (-> conn param1))) - ) - ((= v1-1 'talking) - (set! (-> obj talking) (the-as (pointer progress) (-> conn param1))) - ) - ((= v1-1 'spooling) - (set! (-> obj spooling) (the-as (pointer progress) (-> conn param1))) - ) - ((= v1-1 'hint) - (set! (-> obj hint) (the-as (pointer process) (-> conn param1))) - ) - ((= v1-1 'ambient) - (set! (-> obj ambient) (the-as (pointer progress) (-> conn param1))) - ) - ((= v1-1 'common-page) - (let ((v1-89 (-> conn param1))) - (cond - ((= (the-as symbol v1-89) 'set) - (set! - (-> obj common-page) - (logior (-> obj common-page) (the-as int (-> conn param3))) - ) + ) + (('bg-r) + (set! (-> obj bg-r) (the-as float (-> conn param2))) + ) + (('bg-g) + (set! (-> obj bg-g) (the-as float (-> conn param2))) + ) + (('bg-b) + (set! (-> obj bg-b) (the-as float (-> conn param2))) + ) + (('bg-a) + (set! (-> obj bg-a) (the-as float (-> conn param2))) + ) + (('bg-a-speed) + (set! (-> obj bg-a-speed) (the-as float (-> conn param2))) + ) + (('bg-a-force) + (set! (-> obj bg-a-force) (the-as float (-> conn param2))) + ) + (('language) + (set! (-> obj language) (the-as int (-> conn param3))) + ) + (('vibration) + (set! (-> obj vibration) (the-as symbol (-> conn param1))) + ) + (('auto-save) + (set! (-> obj auto-save) (the-as symbol (-> conn param1))) + ) + (('allow-pause) + (set! (-> obj allow-pause) (the-as symbol (-> conn param1))) + ) + (('allow-progress) + (set! (-> obj allow-progress) (the-as symbol (-> conn param1))) + ) + (('play-hints) + (set! (-> obj play-hints) (the-as symbol (-> conn param1))) + ) + (('movie) + (set! (-> obj movie) (the-as (pointer progress) (-> conn param1))) + ) + (('talking) + (set! (-> obj talking) (the-as (pointer progress) (-> conn param1))) + ) + (('spooling) + (set! (-> obj spooling) (the-as (pointer progress) (-> conn param1))) + ) + (('hint) + (set! (-> obj hint) (the-as (pointer process) (-> conn param1))) + ) + (('ambient) + (set! (-> obj ambient) (the-as (pointer progress) (-> conn param1))) + ) + (('common-page) + (case (-> conn param1) + (('set) + (set! + (-> obj common-page) + (logior (-> obj common-page) (the-as int (-> conn param3))) ) - ((= v1-89 'clear) - (set! - (-> obj common-page) - (logand - (-> obj common-page) - (the-as int (the-as uint (lognot (the-as uint (-> conn param3))))) - ) - ) + ) + (('clear) + (set! + (-> obj common-page) + (logand + (-> obj common-page) + (the-as int (the-as uint (lognot (the-as uint (-> conn param3))))) ) ) ) @@ -354,10 +361,7 @@ (set! (-> gp-0 dialog-volume-hint) (-> s5-0 dialog-volume-hint)) (set! (-> gp-0 process-mask) (-> s5-0 process-mask)) ) - (set! - (-> *kernel-context* prevent-from-run) - (the-as process-mask (-> gp-0 process-mask)) - ) + (set! (-> *kernel-context* prevent-from-run) (-> gp-0 process-mask)) gp-0 ) ) @@ -496,17 +500,15 @@ (set! (-> *level* border?) (-> gp-0 border-mode)) (set! (-> *texture-pool* common-page-mask) (-> gp-0 common-page)) (set! (-> *cpad-list* cpads 0 buzz) (-> gp-0 vibration)) - (let ((v1-64 (-> gp-0 ocean-off))) - (cond - ((= v1-64 #t) + (case (-> gp-0 ocean-off) + ((#t) (set! *ocean-off* #t) ) - ((= v1-64 'mid) - (set! *ocean-mid-off* #t) - ) - ((= v1-64 'near) - (set! *ocean-near-off* #t) - ) + (('mid) + (set! *ocean-mid-off* #t) + ) + (('near) + (set! *ocean-near-off* #t) ) ) gp-0 @@ -557,7 +559,7 @@ ) ) (set! (-> gp-0 language) (the-as int (scf-get-language))) - (set! (-> gp-0 process-mask) (the-as uint 65)) + (set! (-> gp-0 process-mask) (process-mask execute sleep)) (set! (-> gp-0 screenx) 0) (set! (-> gp-0 screeny) 0) (set! (-> gp-0 vibration) #t) @@ -574,9 +576,11 @@ (set! (-> gp-0 bg-a-speed) 8.0) (set! (-> gp-0 allow-pause) #t) (set! (-> gp-0 allow-progress) #t) - (let ((v1-27 (scf-get-aspect))) - (if (= v1-27 2) - (set! (-> gp-0 aspect-ratio) 'aspect16x9) + (case (scf-get-aspect) + ((2) + (set! (-> gp-0 aspect-ratio) 'aspect16x9) + ) + (else (set! (-> gp-0 aspect-ratio) 'aspect4x3) ) ) @@ -603,7 +607,3 @@ (set! (-> s5-0 ocean-off) (-> gp-0 ocean-off)) ) ) - - - - diff --git a/test/decompiler/reference/engine/game/task/hint-control_REF.gc b/test/decompiler/reference/engine/game/task/hint-control_REF.gc index 1468616f11..20ed15f73f 100644 --- a/test/decompiler/reference/engine/game/task/hint-control_REF.gc +++ b/test/decompiler/reference/engine/game/task/hint-control_REF.gc @@ -496,20 +496,15 @@ (when (and (!= gp-0 0) (nonzero? (-> gp-0 length))) (let ((s5-0 (-> *game-info* in-level-time a0-3))) (dotimes (s4-0 (-> gp-0 length)) - (let - ((v1-17 (get-task-status (the-as game-task (-> gp-0 s4-0 task))))) - (when - (or - (= v1-17 (task-status need-hint)) - (= v1-17 (task-status unknown)) - ) - (if (< (-> gp-0 s4-0 delay) s5-0) - (close-specific-task! - (the-as game-task (-> gp-0 s4-0 task)) - (task-status need-hint) + (case (get-task-status (the-as game-task (-> gp-0 s4-0 task))) + (((task-status need-hint) (task-status unknown)) + (if (< (-> gp-0 s4-0 delay) s5-0) + (close-specific-task! + (the-as game-task (-> gp-0 s4-0 task)) + (task-status need-hint) + ) ) ) - ) ) ) ) diff --git a/test/decompiler/reference/engine/game/task/task-control_REF.gc b/test/decompiler/reference/engine/game/task/task-control_REF.gc index 99414d8600..324fd81489 100644 --- a/test/decompiler/reference/engine/game/task/task-control_REF.gc +++ b/test/decompiler/reference/engine/game/task/task-control_REF.gc @@ -3,35 +3,33 @@ ;; definition (debug) for function task-status->string (defun-debug task-status->string ((arg0 task-status)) - (let ((v1-0 arg0)) - (cond - ((= v1-0 (task-status need-resolution)) + (case arg0 + (((task-status need-resolution)) "need-resolution" ) - ((= v1-0 (task-status need-reward-speech)) - "need-reward-speech" - ) - ((= v1-0 (task-status need-reminder)) - "need-reminder" - ) - ((= v1-0 (task-status need-reminder-a)) - "need-reminder-a" - ) - ((= v1-0 (task-status need-introduction)) - "need-introduction" - ) - ((= v1-0 (task-status need-hint)) - "need-hint" - ) - ((= v1-0 (task-status unknown)) - "unknown" - ) - ((= v1-0 (task-status invalid)) - "invalid" - ) - (else - "*unknown*" - ) + (((task-status need-reward-speech)) + "need-reward-speech" + ) + (((task-status need-reminder)) + "need-reminder" + ) + (((task-status need-reminder-a)) + "need-reminder-a" + ) + (((task-status need-introduction)) + "need-introduction" + ) + (((task-status need-hint)) + "need-hint" + ) + (((task-status unknown)) + "unknown" + ) + (((task-status invalid)) + "invalid" + ) + (else + "*unknown*" ) ) ) @@ -5490,17 +5488,17 @@ ;; definition for function task-known? (defun task-known? ((arg0 game-task)) - (let ((v1-0 (get-task-status arg0))) - (if - (or - (= v1-0 (task-status need-reward-speech)) - (= v1-0 (task-status need-introduction)) - (= v1-0 (task-status need-reminder)) - (= v1-0 (task-status need-reminder-a)) - (= v1-0 (task-status need-resolution)) - (= v1-0 (task-status invalid)) + (case (get-task-status arg0) + (((task-status need-reward-speech) + (task-status need-introduction) + (task-status need-reminder) + (task-status need-reminder-a) + (task-status need-resolution) + (task-status invalid) + ) + #t ) - #t + (else #f ) ) diff --git a/test/decompiler/reference/engine/game/video_REF.gc b/test/decompiler/reference/engine/game/video_REF.gc index e93bd5ae72..40b8bcc0de 100644 --- a/test/decompiler/reference/engine/game/video_REF.gc +++ b/test/decompiler/reference/engine/game/video_REF.gc @@ -4,9 +4,8 @@ ;; definition for function set-video-mode ;; INFO: Return type mismatch int vs none. (defun set-video-mode ((arg0 symbol)) - (let ((v1-0 arg0)) - (cond - ((= v1-0 'ntsc) + (case arg0 + (('ntsc) (set! (-> *video-parms* screen-sy) 224) (set! (-> *setting-control* default screenx) 0) (set! (-> *setting-control* default screeny) 8) @@ -18,18 +17,17 @@ (set! (-> *math-camera* y-clip) 448.0) (set! (-> *shadow-data* texoffset y) 112.5) ) - ((= v1-0 'pal) - (set! (-> *video-parms* screen-sy) 256) - (set! (-> *setting-control* default screenx) 0) - (set! (-> *setting-control* default screeny) 24) - (set! (-> *video-parms* screen-pages-high) 8) - (set! (-> *video-parms* relative-y-scale) 1.1428572) - (set! *ticks-per-frame* #x2dc6) - (set! (-> *math-camera* isometric vector 1 y) 0.4375) - (set! (-> *math-camera* y-pix) 128.0) - (set! (-> *math-camera* y-clip) 512.0) - (set! (-> *shadow-data* texoffset y) 128.5) - ) + (('pal) + (set! (-> *video-parms* screen-sy) 256) + (set! (-> *setting-control* default screenx) 0) + (set! (-> *setting-control* default screeny) 24) + (set! (-> *video-parms* screen-pages-high) 8) + (set! (-> *video-parms* relative-y-scale) 1.1428572) + (set! *ticks-per-frame* #x2dc6) + (set! (-> *math-camera* isometric vector 1 y) 0.4375) + (set! (-> *math-camera* y-pix) 128.0) + (set! (-> *math-camera* y-clip) 512.0) + (set! (-> *shadow-data* texoffset y) 128.5) ) ) (set-time-ratios *display* (-> *display* time-ratio)) @@ -70,16 +68,14 @@ ;; definition for function set-aspect-ratio ;; INFO: Return type mismatch int vs none. (defun set-aspect-ratio ((arg0 symbol)) - (let ((v1-0 arg0)) - (cond - ((= v1-0 'aspect4x3) + (case arg0 + (('aspect4x3) (set! (-> *video-parms* relative-x-scale) 1.0) (set! (-> *video-parms* relative-x-scale-reciprical) 1.0) ) - ((= v1-0 'aspect16x9) - (set! (-> *video-parms* relative-x-scale) 0.75) - (set! (-> *video-parms* relative-x-scale-reciprical) 1.3333334) - ) + (('aspect16x9) + (set! (-> *video-parms* relative-x-scale) 0.75) + (set! (-> *video-parms* relative-x-scale-reciprical) 1.3333334) ) ) (set! diff --git a/test/decompiler/reference/engine/geometry/geometry_REF.gc b/test/decompiler/reference/engine/geometry/geometry_REF.gc index deed2f32f7..d75885a9ca 100644 --- a/test/decompiler/reference/engine/geometry/geometry_REF.gc +++ b/test/decompiler/reference/engine/geometry/geometry_REF.gc @@ -1407,10 +1407,6 @@ ;; definition for function curve-closest-point ;; WARN: Stack slot offset 48 signed mismatch ;; WARN: Stack slot offset 48 signed mismatch -;; WARN: Stack slot offset 48 signed mismatch -;; WARN: Stack slot offset 48 signed mismatch -;; WARN: Stack slot offset 48 signed mismatch -;; WARN: Stack slot offset 48 signed mismatch (defun curve-closest-point ((arg0 curve) (arg1 vector) (arg2 float) (arg3 float) (arg4 int) (arg5 float)) diff --git a/test/decompiler/reference/engine/gfx/generic/generic_REF.gc b/test/decompiler/reference/engine/gfx/generic/generic_REF.gc index 31460cd91b..bd3048af6e 100644 --- a/test/decompiler/reference/engine/gfx/generic/generic_REF.gc +++ b/test/decompiler/reference/engine/gfx/generic/generic_REF.gc @@ -128,7 +128,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - s3-0 + (the-as bucket-id s3-0) s2-0 (the-as (pointer dma-tag) a3-0) ) diff --git a/test/decompiler/reference/engine/gfx/hw/display_REF.gc b/test/decompiler/reference/engine/gfx/hw/display_REF.gc index c279a51534..0c095fd9ac 100644 --- a/test/decompiler/reference/engine/gfx/hw/display_REF.gc +++ b/test/decompiler/reference/engine/gfx/hw/display_REF.gc @@ -15,20 +15,18 @@ (defmethod set-time-ratios display ((obj display) (slowdown float)) (let ((ratio (fmin 4.0 slowdown))) (set! (-> obj time-ratio) ratio) - (let ((v1-0 (get-video-mode))) - (cond - ((= v1-0 'pal) + (case (get-video-mode) + (('pal) (set! (-> obj time-adjust-ratio) (* 1.2 ratio)) (set! (-> obj seconds-per-frame) (* 0.02 ratio)) (set! (-> obj frames-per-second) (* 50.0 (/ 1.0 ratio))) (set! (-> obj time-factor) 6.0) ) - (else - (set! (-> obj time-adjust-ratio) ratio) - (set! (-> obj seconds-per-frame) (* 0.016666668 ratio)) - (set! (-> obj frames-per-second) (* 60.0 (/ 1.0 ratio))) - (set! (-> obj time-factor) 5.0) - ) + (else + (set! (-> obj time-adjust-ratio) ratio) + (set! (-> obj seconds-per-frame) (* 0.016666668 ratio)) + (set! (-> obj frames-per-second) (* 60.0 (/ 1.0 ratio))) + (set! (-> obj time-factor) 5.0) ) ) ) diff --git a/test/decompiler/reference/engine/gfx/hw/gs_REF.gc b/test/decompiler/reference/engine/gfx/hw/gs_REF.gc index 47c79d429b..bcd3da3df8 100644 --- a/test/decompiler/reference/engine/gfx/hw/gs_REF.gc +++ b/test/decompiler/reference/engine/gfx/hw/gs_REF.gc @@ -77,50 +77,48 @@ ;; definition for function psm->string (defun psm->string ((arg0 gs-psm)) - (let ((v1-0 arg0)) - (cond - ((= v1-0 (gs-psm mz16s)) + (case arg0 + (((gs-psm mz16s)) "mz16s" ) - ((= v1-0 (gs-psm mz16)) - "mz16" - ) - ((= v1-0 (gs-psm mz24)) - "mz24" - ) - ((= v1-0 (gs-psm mz32)) - "mz32" - ) - ((= v1-0 (gs-psm mt4hh)) - "mt4hh" - ) - ((= v1-0 (gs-psm mt4hl)) - "mt4hl" - ) - ((= v1-0 (gs-psm mt8h)) - "mt8h" - ) - ((= v1-0 (gs-psm mt4)) - "mt4" - ) - ((= v1-0 (gs-psm mt8)) - "mt8" - ) - ((= v1-0 (gs-psm ct16s)) - "ct16s" - ) - ((= v1-0 (gs-psm ct16)) - "ct16" - ) - ((= v1-0 (gs-psm ct24)) - "ct24" - ) - ((= v1-0 (gs-psm ct32)) - "ct32" - ) - (else - "*unknown*" - ) + (((gs-psm mz16)) + "mz16" + ) + (((gs-psm mz24)) + "mz24" + ) + (((gs-psm mz32)) + "mz32" + ) + (((gs-psm mt4hh)) + "mt4hh" + ) + (((gs-psm mt4hl)) + "mt4hl" + ) + (((gs-psm mt8h)) + "mt8h" + ) + (((gs-psm mt4)) + "mt4" + ) + (((gs-psm mt8)) + "mt8" + ) + (((gs-psm ct16s)) + "ct16s" + ) + (((gs-psm ct16)) + "ct16" + ) + (((gs-psm ct24)) + "ct24" + ) + (((gs-psm ct32)) + "ct32" + ) + (else + "*unknown*" ) ) ) diff --git a/test/decompiler/reference/engine/gfx/ocean/ocean-h_REF.gc b/test/decompiler/reference/engine/gfx/ocean/ocean-h_REF.gc index b4c9ab9974..ac1514b302 100644 --- a/test/decompiler/reference/engine/gfx/ocean/ocean-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/ocean/ocean-h_REF.gc @@ -112,6 +112,7 @@ ((mask uint8 8 :offset-assert 0) (dword uint64 :offset 0) ) + :pack-me :method-count-assert 9 :size-assert #x8 :flag-assert #x900000008 @@ -120,7 +121,7 @@ ;; definition for method 3 of type ocean-mid-mask (defmethod inspect ocean-mid-mask ((obj ocean-mid-mask)) (format #t "[~8x] ~A~%" obj 'ocean-mid-mask) - (format #t "~Tmask[8] @ #x~X~%" (-> obj mask)) + (format #t "~Tmask[8] @ #x~X~%" (&-> obj dword)) (format #t "~Tdword: #x~X~%" (-> obj dword)) obj ) @@ -143,7 +144,7 @@ ;; definition of type ocean-mid-masks (deftype ocean-mid-masks (basic) - ((data uint32 :offset-assert 4) + ((data (inline-array ocean-mid-mask) :offset-assert 4) ) :pack-me :method-count-assert 9 @@ -198,7 +199,7 @@ ;; definition of type ocean-trans-indices (deftype ocean-trans-indices (basic) - ((data uint32 2304 :offset-assert 4) + ((data ocean-trans-index 2304 :inline :offset-assert 4) ) :method-count-assert 9 :size-assert #x2404 @@ -230,7 +231,7 @@ ;; definition of type ocean-near-indices (deftype ocean-near-indices (basic) - ((data uint32 :offset-assert 4) + ((data (inline-array ocean-near-index) :offset-assert 4) ) :method-count-assert 9 :size-assert #x8 diff --git a/test/decompiler/reference/engine/gfx/texture-h_REF.gc b/test/decompiler/reference/engine/gfx/texture-h_REF.gc index a4a6cff202..5e89638eb9 100644 --- a/test/decompiler/reference/engine/gfx/texture-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/texture-h_REF.gc @@ -74,7 +74,7 @@ (dummy-18 () none 18) (dummy-19 () none 19) (unload! (_type_ texture-page) int 20) - (upload-one-common! (_type_) symbol 21) + (upload-one-common! (_type_ level) symbol 21) (lookup-boot-common-id (_type_ int) int 22) ) ) diff --git a/test/decompiler/reference/engine/gfx/texture_REF.gc b/test/decompiler/reference/engine/gfx/texture_REF.gc index 131469eb94..c896bd8458 100644 --- a/test/decompiler/reference/engine/gfx/texture_REF.gc +++ b/test/decompiler/reference/engine/gfx/texture_REF.gc @@ -1007,7 +1007,7 @@ (segment texture-pool-segment) (page texture-page) (mode int) - (bucket-idx int) + (bucket-idx bucket-id) ) (local-vars (tex-data pointer) @@ -1249,7 +1249,7 @@ ((pool texture-pool) (segment texture-pool-segment) (page texture-page) - (bucket-idx int) + (bucket-idx bucket-id) (allow-cache-mask int) ) (local-vars @@ -1445,7 +1445,7 @@ ) ) (set! (-> *texture-pool* allocate-func) texture-page-common-allocate) - (set! (-> *level* unknown-level-2 code-memory-end) (the-as pointer page)) + (set! (-> *level* loading-level code-memory-end) (the-as pointer page)) page ) @@ -1485,7 +1485,7 @@ ) ) (set! (-> *texture-pool* allocate-func) texture-page-common-allocate) - (set! (-> *level* unknown-level-2 code-memory-end) (the-as pointer page)) + (set! (-> *level* loading-level code-memory-end) (the-as pointer page)) page ) @@ -1500,7 +1500,7 @@ (set! (-> pool common-page common-id) page) ) (else - (let ((level-idx (-> *level* unknown-level-2 index))) + (let ((level-idx (-> *level* loading-level index))) (cond ((zero? level-idx) (texture-page-near-allocate-0 pool page heap mode) @@ -1771,7 +1771,13 @@ (-> level upload-size 0) (+ (-> level upload-size 0) - (upload-vram-pages obj (-> obj segment-near) tfrag-page 2 tfrag-bucket) + (upload-vram-pages + obj + (-> obj segment-near) + tfrag-page + 2 + (the-as bucket-id tfrag-bucket) + ) ) ) ) @@ -1788,7 +1794,7 @@ (-> obj segment-common) tfrag-page 0 - tfrag-bucket + (the-as bucket-id tfrag-bucket) ) ) ) @@ -1803,7 +1809,7 @@ (-> obj segment-common) tfrag-page -2 - tfrag-bucket + (the-as bucket-id tfrag-bucket) ) ) ) @@ -1828,7 +1834,7 @@ obj (-> obj segment-common) pris-page - pris-bucket + (the-as bucket-id pris-bucket) (the-as int (-> level texture-mask 7)) ) ) @@ -1869,7 +1875,7 @@ (-> obj segment-common) shrub-page shrub-mode - shrub-bucket + (the-as bucket-id shrub-bucket) ) ) ) @@ -1913,7 +1919,7 @@ (-> obj segment-common) alpha-page alpha-mode - alpha-bucket + (the-as bucket-id alpha-bucket) ) ) ) @@ -1935,7 +1941,7 @@ obj (-> obj segment-common) water-page - water-bucket + (the-as bucket-id water-bucket) (the-as int (-> level texture-mask 8)) ) ) @@ -1948,7 +1954,7 @@ ) ;; definition for method 21 of type texture-pool -(defmethod upload-one-common! texture-pool ((obj texture-pool)) +(defmethod upload-one-common! texture-pool ((obj texture-pool) (arg0 level)) (dotimes (v1-0 32) (let ((a2-0 (-> obj common-page v1-0))) (when @@ -1956,7 +1962,13 @@ (nonzero? a2-0) (nonzero? (logand (-> obj common-page-mask) (ash 1 v1-0))) ) - (upload-vram-pages obj (-> obj segment-common) a2-0 -2 65) + (upload-vram-pages + obj + (-> obj segment-common) + a2-0 + -2 + (bucket-id bucket-65) + ) (return #f) ) ) @@ -1996,7 +2008,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 5 + (bucket-id tfrag-tex0) a2-0 (the-as (pointer dma-tag) a3-3) ) @@ -2029,7 +2041,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 48 + (bucket-id pris-tex0) a2-1 (the-as (pointer dma-tag) a3-7) ) @@ -2062,7 +2074,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 19 + (bucket-id shrub-tex0) a2-2 (the-as (pointer dma-tag) a3-11) ) @@ -2095,7 +2107,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 31 + (bucket-id alpha-tex0) a2-3 (the-as (pointer dma-tag) a3-15) ) @@ -2130,7 +2142,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 12 + (bucket-id tfrag-tex1) a2-4 (the-as (pointer dma-tag) a3-19) ) @@ -2163,7 +2175,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 51 + (bucket-id pris-tex1) a2-5 (the-as (pointer dma-tag) a3-23) ) @@ -2196,7 +2208,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 25 + (bucket-id shrub-tex1) a2-6 (the-as (pointer dma-tag) a3-27) ) @@ -2229,7 +2241,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 38 + (bucket-id alpha-tex1) a2-7 (the-as (pointer dma-tag) a3-31) ) @@ -2678,17 +2690,6 @@ ;; WARN: Stack slot offset 20 signed mismatch ;; WARN: Stack slot offset 16 signed mismatch ;; WARN: Stack slot offset 16 signed mismatch -;; WARN: Stack slot offset 20 signed mismatch -;; WARN: Stack slot offset 20 signed mismatch -;; WARN: Stack slot offset 20 signed mismatch -;; WARN: Stack slot offset 20 signed mismatch -;; WARN: Stack slot offset 16 signed mismatch -;; WARN: Stack slot offset 16 signed mismatch -;; WARN: Stack slot offset 20 signed mismatch -;; WARN: Stack slot offset 20 signed mismatch -;; WARN: Stack slot offset 20 signed mismatch -;; WARN: Stack slot offset 20 signed mismatch -;; WARN: Stack slot offset 16 signed mismatch ;; WARN: Stack slot offset 16 signed mismatch ;; INFO: Return type mismatch int vs none. (defmethod setup-font-texture! texture-pool ((obj texture-pool)) @@ -2970,7 +2971,7 @@ (set! obj (the-as texture-page #f)) ) ((begin - (let ((v1-2 (-> *level* unknown-level-2))) + (let ((v1-2 (-> *level* loading-level))) (when v1-2 (set! (-> v1-2 loaded-texture-page (-> v1-2 loaded-texture-page-count)) @@ -3259,17 +3260,19 @@ ;; definition for function adgif-shader-update! ;; INFO: Return type mismatch gs-tex1 vs none. (defun adgif-shader-update! ((arg0 adgif-shader) (arg1 texture)) - (let ((s5-0 (the int (/ 256.0 (-> arg1 uv-dist)))) - (v1-2 (-> arg0 tex1 l)) - ) - (if (= v1-2 1) - (set! - (-> arg0 tex1 k) - (+ (+ (logand (ash s5-0 (- 5 (log2 s5-0))) 31) -350) (* (log2 s5-0) 32)) - ) - (set! - (-> arg0 tex1 k) - (+ (+ (logand (ash s5-0 (- 4 (log2 s5-0))) 15) -175) (* (log2 s5-0) 16)) + (let ((s5-0 (the int (/ 256.0 (-> arg1 uv-dist))))) + (case (-> arg0 tex1 l) + ((1) + (set! + (-> arg0 tex1 k) + (+ (+ (logand (ash s5-0 (- 5 (log2 s5-0))) 31) -350) (* (log2 s5-0) 32)) + ) + ) + (else + (set! + (-> arg0 tex1 k) + (+ (+ (logand (ash s5-0 (- 4 (log2 s5-0))) 15) -175) (* (log2 s5-0) 16)) + ) ) ) ) @@ -3706,7 +3709,3 @@ ;; definition for symbol *texture-pool*, type texture-pool (define *texture-pool* (new 'global 'texture-pool)) - - - - diff --git a/test/decompiler/reference/engine/gfx/tfrag/tfrag-h_REF.gc b/test/decompiler/reference/engine/gfx/tfrag/tfrag-h_REF.gc index 806dacfed0..7d56ee9893 100644 --- a/test/decompiler/reference/engine/gfx/tfrag/tfrag-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/tfrag/tfrag-h_REF.gc @@ -64,7 +64,7 @@ (dma-level-0 uint32 :offset 32) (dma-base uint32 :offset 36) (dma-level-1 uint32 :offset 40) - (dma-qwc uint32 4 :offset-assert 44) + (dma-qwc uint32 4 :offset 44) (shader uint32 :offset 48) (num-shaders uint8 :offset 52) (num-base-colors uint8 :offset 53) @@ -135,7 +135,8 @@ ;; definition of type drawable-tree-tfrag (deftype drawable-tree-tfrag (drawable-tree) - () + ((time-of-day-pal time-of-day-palette :offset 12) + ) :method-count-assert 18 :size-assert #x24 :flag-assert #x1200000024 diff --git a/test/decompiler/reference/engine/gfx/vis/bsp-h_REF.gc b/test/decompiler/reference/engine/gfx/vis/bsp-h_REF.gc index 369f34c3aa..3592834ca7 100644 --- a/test/decompiler/reference/engine/gfx/vis/bsp-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/vis/bsp-h_REF.gc @@ -37,7 +37,7 @@ (unk-data-0-len int32 :offset-assert 56) (unk-data-1 pointer :offset-assert 60) (unk-data-1-len int32 :offset-assert 64) - (unk-zero-0 uint32 :offset-assert 68) + (unk-zero-0 basic :offset-assert 68) (name symbol :offset-assert 72) (nickname symbol :offset-assert 76) (vis-info level-vis-info 8 :offset-assert 80) diff --git a/test/decompiler/reference/engine/level/level-h_REF.gc b/test/decompiler/reference/engine/level/level-h_REF.gc index 7b33006f5a..61baaa0716 100644 --- a/test/decompiler/reference/engine/level/level-h_REF.gc +++ b/test/decompiler/reference/engine/level/level-h_REF.gc @@ -190,7 +190,7 @@ (add-irq-to-tex-buckets! (_type_) none 11) (unload! (_type_) _type_ 12) (bsp-name (_type_) symbol 13) - (dummy-14 (_type_ object) none 14) + (dummy-14 (_type_ object) memory-usage-block 14) (dummy-15 (_type_ vector) symbol 15) (dummy-16 (_type_) none 16) (load-continue (_type_) _type_ 17) @@ -269,8 +269,8 @@ ;; definition of type level-group (deftype level-group (basic) ((length int32 :offset-assert 4) - (unknown-level-1 level :offset-assert 8) - (unknown-level-2 level :offset-assert 12) + (log-in-level level :offset-assert 8) + (loading-level level :offset-assert 12) (entity-link entity-links :offset-assert 16) (border? basic :offset-assert 20) (vis? basic :offset-assert 24) @@ -295,7 +295,7 @@ (level-get-for-use (_type_ symbol symbol) level 11) (activate-levels! (_type_) int 12) (dummy-13 () none 13) - (dummy-14 () none 14) + (dummy-14 (_type_ object) none 14) (dummy-15 () none 15) (dummy-16 (_type_) int 16) (level-get-target-inside (_type_) level 17) @@ -336,8 +336,8 @@ *level* (new 'static 'level-group :length 2 - :unknown-level-1 #f - :unknown-level-2 #f + :log-in-level #f + :loading-level #f :entity-link #f :border? #f :want-level #f diff --git a/test/decompiler/reference/engine/load/file-io_REF.gc b/test/decompiler/reference/engine/load/file-io_REF.gc index db54da4a18..407e9ad403 100644 --- a/test/decompiler/reference/engine/load/file-io_REF.gc +++ b/test/decompiler/reference/engine/load/file-io_REF.gc @@ -156,20 +156,15 @@ ((info file-info) (kind file-kind) (version-override int)) (let* ((expected-version (cond ((zero? version-override) - (let ((v1-0 kind)) - (cond - ((or - (= v1-0 (file-kind tpage)) - (= v1-0 (file-kind dir-tpage)) - ) + (case kind + (((file-kind tpage) (file-kind dir-tpage)) 7 ) - ((= v1-0 (file-kind level-bt)) - 30 - ) - ((= v1-0 (file-kind art-group)) - 6 - ) + (((file-kind level-bt)) + 30 + ) + (((file-kind art-group)) + 6 ) ) ) diff --git a/test/decompiler/reference/engine/target/joint-mod-h_REF.gc b/test/decompiler/reference/engine/target/joint-mod-h_REF.gc index c9c1065de2..b89f9128c5 100644 --- a/test/decompiler/reference/engine/target/joint-mod-h_REF.gc +++ b/test/decompiler/reference/engine/target/joint-mod-h_REF.gc @@ -112,41 +112,39 @@ joint-mod ((obj joint-mod) (handler-mode joint-mod-handler-mode)) (set! (-> obj mode) handler-mode) - (let ((joint (-> obj joint)) - (mode handler-mode) - ) - (cond - ((= mode (joint-mod-handler-mode flex-blend)) - (set! (-> joint param0) #f) - (set! (-> joint param1) #f) - (set! (-> joint param2) #f) - (set! (-> obj blend) 0.0) - (set! (-> obj flex-blend) 1.0) - ) - ((= mode (joint-mod-handler-mode reset)) + (let ((joint (-> obj joint))) + (case handler-mode + (((joint-mod-handler-mode flex-blend)) + (set! (-> joint param0) #f) + (set! (-> joint param1) #f) + (set! (-> joint param2) #f) + (set! (-> obj blend) 0.0) + (set! (-> obj flex-blend) 1.0) + ) + (((joint-mod-handler-mode reset)) (set! (-> joint param0) #f) (set! (-> joint param1) #f) (set! (-> joint param2) #f) (set! (-> obj blend) 0.0) (set! (-> obj shutting-down?) #f) ) - ((= mode (joint-mod-handler-mode look-at)) + (((joint-mod-handler-mode look-at)) (set! (-> joint param0) joint-mod-look-at-handler) (set! (-> joint param1) obj) (set! (-> joint param2) #f) ) - ((= mode (joint-mod-handler-mode world-look-at)) + (((joint-mod-handler-mode world-look-at)) (set! (-> joint param0) joint-mod-world-look-at-handler) (set! (-> joint param1) obj) (set! (-> joint param2) #f) ) - ((= mode (joint-mod-handler-mode rotate)) + (((joint-mod-handler-mode rotate)) (set! (-> joint param0) joint-mod-rotate-handler) (set! (-> joint param1) obj) (set! (-> joint param2) #f) (set! (-> obj blend) 1.0) ) - ((= mode (joint-mod-handler-mode joint-set)) + (((joint-mod-handler-mode joint-set)) (set! (-> joint param0) joint-mod-joint-set-handler) (set! (-> joint param1) obj) (set! (-> joint param2) #f) @@ -160,7 +158,7 @@ ) (set! (-> obj max-dist) (the-as float #f)) ) - ((= mode (joint-mod-handler-mode joint-set*)) + (((joint-mod-handler-mode joint-set*)) (set! (-> joint param0) joint-mod-joint-set*-handler) (set! (-> joint param1) obj) (set! (-> joint param2) #f) diff --git a/test/decompiler/reference/engine/target/pat-h_REF.gc b/test/decompiler/reference/engine/target/pat-h_REF.gc index ace4daf1c3..7144b53b67 100644 --- a/test/decompiler/reference/engine/target/pat-h_REF.gc +++ b/test/decompiler/reference/engine/target/pat-h_REF.gc @@ -35,132 +35,126 @@ ;; definition (debug) for function pat-material->string (defun-debug pat-material->string ((arg0 pat-surface)) - (let ((v1-1 (-> arg0 material))) - (cond - ((= v1-1 (pat-material neutral)) + (case (-> arg0 material) + (((pat-material neutral)) "neutral" ) - ((= v1-1 (pat-material rotate)) - "rotate" - ) - ((= v1-1 (pat-material stopproj)) - "stopproj" - ) - ((= v1-1 (pat-material swamp)) - "swamp" - ) - ((= v1-1 (pat-material tube)) - "tube" - ) - ((= v1-1 (pat-material straw)) - "straw" - ) - ((= v1-1 (pat-material metal)) - "metal" - ) - ((= v1-1 (pat-material dirt)) - "dirt" - ) - ((= v1-1 (pat-material gravel)) - "gravel" - ) - ((= v1-1 (pat-material crwood)) - "crwood" - ) - ((= v1-1 (pat-material lava)) - "lava" - ) - ((= v1-1 (pat-material hotcoals)) - "hotcoals" - ) - ((= v1-1 (pat-material deepsnow)) - "deepsnow" - ) - ((= v1-1 (pat-material snow)) - "snow" - ) - ((= v1-1 (pat-material pcmetal)) - "pcmetal" - ) - ((= v1-1 (pat-material grass)) - "grass" - ) - ((= v1-1 (pat-material wood)) - "wood" - ) - ((= v1-1 (pat-material sand)) - "sand" - ) - ((= v1-1 (pat-material tar)) - "tar" - ) - ((= v1-1 (pat-material waterbottom)) - "waterbottom" - ) - ((= v1-1 (pat-material quicksand)) - "quicksand" - ) - ((= v1-1 (pat-material ice)) - "ice" - ) - ((= v1-1 (pat-material stone)) - "stone" - ) - (else - "*unknown*" - ) + (((pat-material rotate)) + "rotate" + ) + (((pat-material stopproj)) + "stopproj" + ) + (((pat-material swamp)) + "swamp" + ) + (((pat-material tube)) + "tube" + ) + (((pat-material straw)) + "straw" + ) + (((pat-material metal)) + "metal" + ) + (((pat-material dirt)) + "dirt" + ) + (((pat-material gravel)) + "gravel" + ) + (((pat-material crwood)) + "crwood" + ) + (((pat-material lava)) + "lava" + ) + (((pat-material hotcoals)) + "hotcoals" + ) + (((pat-material deepsnow)) + "deepsnow" + ) + (((pat-material snow)) + "snow" + ) + (((pat-material pcmetal)) + "pcmetal" + ) + (((pat-material grass)) + "grass" + ) + (((pat-material wood)) + "wood" + ) + (((pat-material sand)) + "sand" + ) + (((pat-material tar)) + "tar" + ) + (((pat-material waterbottom)) + "waterbottom" + ) + (((pat-material quicksand)) + "quicksand" + ) + (((pat-material ice)) + "ice" + ) + (((pat-material stone)) + "stone" + ) + (else + "*unknown*" ) ) ) ;; definition (debug) for function pat-mode->string (defun-debug pat-mode->string ((arg0 pat-surface)) - (let ((v1-1 (-> arg0 mode))) - (cond - ((= v1-1 (pat-mode obstacle)) + (case (-> arg0 mode) + (((pat-mode obstacle)) "obstacle" ) - ((= v1-1 (pat-mode wall)) - "wall" - ) - ((= v1-1 (pat-mode ground)) - "ground" - ) - (else - "*unknown*" - ) + (((pat-mode wall)) + "wall" + ) + (((pat-mode ground)) + "ground" + ) + (else + "*unknown*" ) ) ) ;; definition (debug) for function pat-event->string (defun-debug pat-event->string ((arg0 pat-surface)) - (let ((v1-1 (-> arg0 event))) - (cond - ((= v1-1 (pat-event melt)) + (case (-> arg0 event) + (((pat-event melt)) "melt" ) - ((= v1-1 (pat-event burnup)) - "burnup" - ) - ((= v1-1 (pat-event deadlyup)) - "deadlyup" - ) - ((= v1-1 (pat-event burn)) - "burn" - ) - ((= v1-1 (pat-event endlessfall)) - "endlessfall" - ) - ((= v1-1 (pat-event deadly)) - "deadly" - ) - ((= v1-1 (pat-event none)) - "none" - ) - (else - "*unknown*" - ) + (((pat-event burnup)) + "burnup" + ) + (((pat-event deadlyup)) + "deadlyup" + ) + (((pat-event burn)) + "burn" + ) + (((pat-event endlessfall)) + "endlessfall" + ) + (((pat-event deadly)) + "deadly" + ) + (((pat-event none)) + "none" + ) + (else + "*unknown*" ) ) ) diff --git a/test/decompiler/reference/engine/ui/credits_REF.gc b/test/decompiler/reference/engine/ui/credits_REF.gc index cedfe5fde0..43286e566f 100644 --- a/test/decompiler/reference/engine/ui/credits_REF.gc +++ b/test/decompiler/reference/engine/ui/credits_REF.gc @@ -124,14 +124,12 @@ (s3-0 (lookup-text! *common-text* (the-as game-text-id s2-0) #t)) ) (when (= s2-0 3841) - (let ((v1-18 (scf-get-territory))) - (cond - ((= v1-18 1) + (case (scf-get-territory) + ((1) (set! s3-0 (lookup-text! *common-text* (game-text-id europe) #t)) ) - ((= v1-18 2) - (set! s3-0 (lookup-text! *common-text* (game-text-id inc) #t)) - ) + ((2) + (set! s3-0 (lookup-text! *common-text* (game-text-id inc) #t)) ) ) ) diff --git a/test/decompiler/reference/engine/ui/progress-h_REF.gc b/test/decompiler/reference/engine/ui/progress-h_REF.gc index dbbc7954b3..7c85c1828b 100644 --- a/test/decompiler/reference/engine/ui/progress-h_REF.gc +++ b/test/decompiler/reference/engine/ui/progress-h_REF.gc @@ -181,7 +181,7 @@ (dummy-17 () none 17) (dummy-18 () none 18) (dummy-19 () none 19) - (dummy-20 () none 20) + (hidden? (_type_) symbol 20) (dummy-21 () none 21) (dummy-22 () none 22) (TODO-RENAME-23 (_type_ symbol symbol) none 23) diff --git a/test/decompiler/reference/kernel/gkernel_REF.gc b/test/decompiler/reference/kernel/gkernel_REF.gc index badd604ae2..cdb2dc810e 100644 --- a/test/decompiler/reference/kernel/gkernel_REF.gc +++ b/test/decompiler/reference/kernel/gkernel_REF.gc @@ -1347,106 +1347,101 @@ 0 ) (execute-process-tree *active-pool* (lambda ((arg0 process)) - (let ((s5-0 *kernel-context*) - (v1-0 (-> arg0 status)) - ) - (cond - ((or - (= v1-0 'waiting-to-run) - (= v1-0 'suspended) - ) - (set! (-> s5-0 current-process) arg0) - (cond - ((nonzero? - (logand - (-> arg0 mask) - (process-mask pause) - ) - ) - (set! *stdcon* *stdcon1*) - (set! *debug-draw-pauseable* #t) - ) - (else - (set! *stdcon* *stdcon0*) - (set! *debug-draw-pauseable* #f) - ) - ) - (when (-> arg0 trans-hook) - (let - ((s4-0 - (new - 'process - 'cpu-thread - arg0 - 'trans - 256 - (-> arg0 main-thread stack-top) + (let ((s5-0 *kernel-context*)) + (case (-> arg0 status) + (('waiting-to-run 'suspended) + (set! (-> s5-0 current-process) arg0) + (cond + ((nonzero? + (logand + (-> arg0 mask) + (process-mask pause) ) ) + (set! *stdcon* *stdcon1*) + (set! *debug-draw-pauseable* #t) ) - (reset-and-call - s4-0 - (-> arg0 trans-hook) - ) - (delete s4-0) - ) - (when (= (-> arg0 status) 'dead) - (set! (-> s5-0 current-process) #f) - (return 'dead) - ) - ) - (if - (nonzero? - (logand - (-> arg0 mask) - (process-mask sleep-code) + (else + (set! *stdcon* *stdcon0*) + (set! *debug-draw-pauseable* #f) ) ) - (set! (-> arg0 status) 'suspended) - ((-> arg0 main-thread resume-hook) - (-> arg0 main-thread) - ) - ) - (cond - ((= (-> arg0 status) 'dead) - (set! (-> s5-0 current-process) #f) - 'dead - ) - (else - (when (-> arg0 post-hook) - (let - ((s4-1 - (new - 'process - 'cpu-thread - arg0 - 'post - 256 - (&-> *dram-stack* 14336) - ) + (when (-> arg0 trans-hook) + (let + ((s4-0 + (new + 'process + 'cpu-thread + arg0 + 'trans + 256 + (-> arg0 main-thread stack-top) ) ) - (reset-and-call - s4-1 - (-> arg0 post-hook) - ) - (delete s4-1) ) - (when (= (-> arg0 status) 'dead) - (set! - (-> s5-0 current-process) - #f - ) - (return 'dead) + (reset-and-call + s4-0 + (-> arg0 trans-hook) ) - (set! (-> arg0 status) 'suspended) + (delete s4-0) + ) + (when (= (-> arg0 status) 'dead) + (set! (-> s5-0 current-process) #f) + (return 'dead) + ) + ) + (if + (nonzero? + (logand + (-> arg0 mask) + (process-mask sleep-code) + ) + ) + (set! (-> arg0 status) 'suspended) + ((-> arg0 main-thread resume-hook) + (-> arg0 main-thread) + ) + ) + (cond + ((= (-> arg0 status) 'dead) + (set! (-> s5-0 current-process) #f) + 'dead + ) + (else + (when (-> arg0 post-hook) + (let + ((s4-1 + (new + 'process + 'cpu-thread + arg0 + 'post + 256 + (&-> *dram-stack* 14336) + ) + ) + ) + (reset-and-call + s4-1 + (-> arg0 post-hook) + ) + (delete s4-1) + ) + (when (= (-> arg0 status) 'dead) + (set! + (-> s5-0 current-process) + #f + ) + (return 'dead) + ) + (set! (-> arg0 status) 'suspended) + ) + (set! (-> s5-0 current-process) #f) + #f ) - (set! (-> s5-0 current-process) #f) - #f ) ) - ) - ((= v1-0 'dead) + (('dead) 'dead ) ) @@ -1827,10 +1822,10 @@ (let ((s5-0 pp)) (let ((s4-0 (-> obj stack-frame-top))) (while (the-as protect-frame s4-0) - (let ((v1-5 (-> s4-0 type))) - (if (or (= v1-5 protect-frame) (= v1-5 state)) - ((-> (the-as protect-frame s4-0) exit)) - ) + (case (-> s4-0 type) + ((protect-frame state) + ((-> (the-as protect-frame s4-0) exit)) + ) ) (set! s4-0 (-> (the-as protect-frame s4-0) next)) ) diff --git a/test/decompiler/reference/kernel/gstate_REF.gc b/test/decompiler/reference/kernel/gstate_REF.gc index 974e7b85ab..0215c62611 100644 --- a/test/decompiler/reference/kernel/gstate_REF.gc +++ b/test/decompiler/reference/kernel/gstate_REF.gc @@ -89,10 +89,10 @@ (set! (-> pp state) (-> pp next-state)) (let ((s0-1 (-> pp stack-frame-top))) (while s0-1 - (let ((v1-10 (-> s0-1 type))) - (if (or (= v1-10 protect-frame) (= v1-10 state)) - ((-> (the-as protect-frame s0-1) exit)) - ) + (case (-> s0-1 type) + ((protect-frame state) + ((-> (the-as protect-frame s0-1) exit)) + ) ) (set! s0-1 (-> s0-1 next)) ) diff --git a/test/decompiler/test_FormExpressionBuild2.cpp b/test/decompiler/test_FormExpressionBuild2.cpp index 5e06e84c6b..e3baaa022d 100644 --- a/test/decompiler/test_FormExpressionBuild2.cpp +++ b/test/decompiler/test_FormExpressionBuild2.cpp @@ -1094,20 +1094,18 @@ TEST_F(FormRegressionTest, StupidFloatMove) { "(begin\n" " (let ((s5-0 (fmin 0.0 arg1)))\n" " (set! (-> arg0 time-ratio) s5-0)\n" - " (let ((v1-0 (get-video-mode)))\n" - " (cond\n" - " ((= v1-0 (quote pal))\n" + " (case (get-video-mode) \n" + " (('pal)\n" " (set! (-> arg0 time-adjust-ratio) (* 0.0 s5-0))\n" " (set! (-> arg0 seconds-per-frame) (* 0.0 s5-0))\n" " (set! (-> arg0 frames-per-second) (* 0.0 (/ 0.0 s5-0)))\n" " (set! (-> arg0 time-factor) 0.0)\n" " )\n" - " (else\n" - " (set! (-> arg0 time-adjust-ratio) s5-0)\n" - " (set! (-> arg0 seconds-per-frame) (* 0.0 s5-0))\n" - " (set! (-> arg0 frames-per-second) (* 0.0 (/ 0.0 s5-0)))\n" - " (set! (-> arg0 time-factor) 0.0)\n" - " )\n" + " (else\n" + " (set! (-> arg0 time-adjust-ratio) s5-0)\n" + " (set! (-> arg0 seconds-per-frame) (* 0.0 s5-0))\n" + " (set! (-> arg0 frames-per-second) (* 0.0 (/ 0.0 s5-0)))\n" + " (set! (-> arg0 time-factor) 0.0)\n" " )\n" " )\n" " )\n" diff --git a/test/goalc/source_templates/with_game/test-array-ref-static.gc b/test/goalc/source_templates/with_game/test-array-ref-static.gc new file mode 100644 index 0000000000..299abaf18d --- /dev/null +++ b/test/goalc/source_templates/with_game/test-array-ref-static.gc @@ -0,0 +1,27 @@ +(deftype test-elt-type (structure) + ((thing1 symbol) + (thing2 int) + ) + ) + +(deftype test-not-inline-inline-array-type (basic) + ((foo int) + (arr (inline-array test-elt-type))) + ) + +(let ((obj (new 'static 'test-not-inline-inline-array-type + :foo 12 + :arr (new 'static 'inline-array test-elt-type + 2 + (new 'static 'test-elt-type :thing1 'asdf :thing2 13) + (new 'static 'test-elt-type :thing1 'bean :thing2 14))))) + (format #t "~A ~D ~A ~D ~A ~D~%" + (-> obj type) + (-> obj foo) + (-> obj arr 0 thing1) + (-> obj arr 0 thing2) + (-> obj arr 1 thing1) + (-> obj arr 1 thing2) + ) + ) + diff --git a/test/goalc/test_with_game.cpp b/test/goalc/test_with_game.cpp index 2d508c563e..09ccf0da3e 100644 --- a/test/goalc/test_with_game.cpp +++ b/test/goalc/test_with_game.cpp @@ -627,6 +627,12 @@ TEST_F(WithGameTests, StaticArrayField) { "0\n"}); } +TEST_F(WithGameTests, ArrayRefStatic) { + runner.run_static_test(env, testCategory, "test-array-ref-static.gc", + {"test-not-inline-inline-array-type 12 asdf 13 bean 14\n" + "0\n"}); +} + TEST_F(WithGameTests, TypeReference) { runner.run_static_test(env, testCategory, "test-type-ref.gc", {"string #t basic some-unknown-type 20 0\n" diff --git a/test/offline/offline_test_main.cpp b/test/offline/offline_test_main.cpp index 0908d36ef9..8ba393cff1 100644 --- a/test/offline/offline_test_main.cpp +++ b/test/offline/offline_test_main.cpp @@ -234,6 +234,9 @@ class OfflineDecompilation : public ::testing::Test { protected: static std::unique_ptr db; static std::unique_ptr config; + + static std::unique_ptr> final_output_cache; + static void SetUpTestCase() { // global setup file_util::init_crc(); @@ -272,17 +275,22 @@ class OfflineDecompilation : public ::testing::Test { db->process_labels(); // fancy decompilation. - db->analyze_functions_ir2({}, *config); + db->analyze_functions_ir2({}, *config, true); + + final_output_cache = std::make_unique>(); } static void TearDownTestCase() { db.reset(); config.reset(); + final_output_cache.reset(); } }; std::unique_ptr OfflineDecompilation::db; std::unique_ptr OfflineDecompilation::config; +std::unique_ptr> + OfflineDecompilation::final_output_cache; /*! * Check that the most basic disassembly into files/functions/instructions has succeeded. @@ -478,15 +486,27 @@ TEST_F(OfflineDecompilation, Reference) { std::string src = db->ir2_final_out(obj_l.at(0)); - /* if (file == "gstring") { - fmt::print("{}\n", src); - }*/ - lg::info("Comparing {}...", file.first); // NOTE - currently only handles .gc files! auto reference = file_util::read_text_file(file.second.string()); + bool can_cache = true; + for (auto& func_list : obj_l.at(0).linked_data.functions_by_seg) { + for (auto& func : func_list) { + if (g_functions_to_skip_compiling.find(func.guessed_name.to_string()) != + g_functions_to_skip_compiling.end()) { + can_cache = false; + break; + } + } + } + + if (can_cache) { + EXPECT_EQ(final_output_cache->count(file.first), 0); + final_output_cache->insert({file.first, src}); + } + strip_trailing_newlines(reference); strip_trailing_newlines(src); @@ -532,10 +552,16 @@ TEST_F(OfflineDecompilation, Compile) { auto& obj_l = db->obj_files_by_name.at(file.first); ASSERT_EQ(obj_l.size(), 1); - std::string src = db->ir2_final_out(obj_l.at(0), g_functions_to_skip_compiling); - total_lines += line_count(src); - - compiler.run_full_compiler_on_string_no_save(src); + const auto& cache = final_output_cache->find(file.first); + if (cache != final_output_cache->end()) { + const auto& src = cache->second; + total_lines += line_count(src); + compiler.run_full_compiler_on_string_no_save(src); + } else { + auto src = db->ir2_final_out(obj_l.at(0), g_functions_to_skip_compiling); + total_lines += line_count(src); + compiler.run_full_compiler_on_string_no_save(src); + } } auto time = timer.getSeconds(); lg::info("Total Lines Compiled: {}. Lines/second: {:.1f}\n", total_lines, From d508c408cca43da6255f80fc539c042e71d2eae3 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 11 Jul 2021 20:36:52 +0000 Subject: [PATCH 04/57] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/{about.acc7b95d.js => about.63a44ad4.js} | 4 ++-- docs/js/{about.acc7b95d.js.map => about.63a44ad4.js.map} | 2 +- docs/js/{app.87be5c69.js => app.635c14bd.js} | 4 ++-- docs/js/{app.87be5c69.js.map => app.635c14bd.js.map} | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename docs/js/{about.acc7b95d.js => about.63a44ad4.js} (99%) rename docs/js/{about.acc7b95d.js.map => about.63a44ad4.js.map} (99%) rename docs/js/{app.87be5c69.js => app.635c14bd.js} (97%) rename docs/js/{app.87be5c69.js.map => app.635c14bd.js.map} (98%) diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index 4983e71e39..2e227540f5 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 103475, + "value": 107118, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index 07487733f9..6b96a8d434 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.acc7b95d.js b/docs/js/about.63a44ad4.js similarity index 99% rename from docs/js/about.acc7b95d.js rename to docs/js/about.63a44ad4.js index b5ecd55978..a9ec4e0e25 100644 --- a/docs/js/about.acc7b95d.js +++ b/docs/js/about.63a44ad4.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":103475,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.acc7b95d.js.map \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107118,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.63a44ad4.js.map \ No newline at end of file diff --git a/docs/js/about.acc7b95d.js.map b/docs/js/about.63a44ad4.js.map similarity index 99% rename from docs/js/about.acc7b95d.js.map rename to docs/js/about.63a44ad4.js.map index 637a631726..7594b634c4 100644 --- a/docs/js/about.acc7b95d.js.map +++ b/docs/js/about.63a44ad4.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?b24d","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.acc7b95d.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?b24d","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.63a44ad4.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.87be5c69.js b/docs/js/app.635c14bd.js similarity index 97% rename from docs/js/app.87be5c69.js rename to docs/js/app.635c14bd.js index cffa79e753..0436062fd8 100644 --- a/docs/js/app.87be5c69.js +++ b/docs/js/app.635c14bd.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?7eb4","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.635c14bd.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"63a44ad4\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file From 0a9cc68a27bff2d7348ae70222b839e0250782e8 Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Sun, 11 Jul 2021 18:19:41 -0400 Subject: [PATCH 05/57] [decompiler] Use meters, degrees, and seconds (#689) * use meters degrees and seconds * update changelog --- common/goal_constants.h | 8 +- common/type_system/TypeSystem.cpp | 24 +- decompiler/IR2/AtomicOpTypeAnalysis.cpp | 2 +- decompiler/IR2/Form.h | 7 +- decompiler/IR2/FormExpressionAnalysis.cpp | 78 ++++- decompiler/config/all-types.gc | 278 +++++++++--------- decompiler/util/DecompilerTypeSystem.cpp | 17 ++ decompiler/util/DecompilerTypeSystem.h | 1 + decompiler/util/data_decompile.cpp | 24 ++ docs/markdown/progress-notes/changelog.md | 3 +- goal_src/engine/anim/aligner-h.gc | 18 +- goal_src/engine/anim/joint-h.gc | 2 +- goal_src/engine/camera/camera-h.gc | 32 +- goal_src/engine/camera/math-camera-h.gc | 96 +++--- goal_src/engine/collide/collide-shape-h.gc | 4 +- goal_src/engine/data/art-h.gc | 36 +-- goal_src/engine/debug/debug.gc | 2 +- goal_src/engine/game/fact-h.gc | 78 ++--- goal_src/engine/game/game-h.gc | 30 +- goal_src/engine/game/generic-obs-h.gc | 6 +- goal_src/engine/gfx/mood-h.gc | 14 +- goal_src/engine/gfx/tie/prototype-h.gc | 38 +-- goal_src/engine/gfx/water/water-h.gc | 76 ++--- goal_src/engine/level/level-h.gc | 4 +- goal_src/engine/level/level-info.gc | 52 ++-- goal_src/engine/math/transformq-h.gc | 16 +- goal_src/engine/nav/navigate-h.gc | 50 ++-- goal_src/engine/physics/dynamics-h.gc | 14 +- goal_src/engine/physics/trajectory-h.gc | 8 +- .../engine/sparticle/sparticle-launcher-h.gc | 18 +- goal_src/engine/target/joint-mod-h.gc | 38 +-- goal_src/levels/common/nav-enemy-h.gc | 102 +++---- goalc/compiler/compilation/Type.cpp | 12 + .../decompiler/reference/decompiler-macros.gc | 63 ++++ .../reference/engine/anim/aligner-h_REF.gc | 6 +- .../reference/engine/anim/joint-h_REF.gc | 2 +- .../reference/engine/camera/camera-h_REF.gc | 32 +- .../engine/camera/math-camera-h_REF.gc | 10 +- .../engine/collide/collide-shape-h_REF.gc | 4 +- .../reference/engine/data/art-h_REF.gc | 10 +- .../reference/engine/game/fact-h_REF.gc | 88 +++--- .../reference/engine/game/game-h_REF.gc | 30 +- .../engine/game/generic-obs-h_REF.gc | 6 +- .../reference/engine/gfx/mood-h_REF.gc | 4 +- .../gfx/sparticle/sparticle-launcher-h_REF.gc | 4 +- .../engine/gfx/tie/prototype-h_REF.gc | 8 +- .../reference/engine/gfx/water/water-h_REF.gc | 34 +-- .../reference/engine/level/level-h_REF.gc | 4 +- .../reference/engine/level/level-info_REF.gc | 52 ++-- .../reference/engine/math/transformq-h_REF.gc | 4 +- .../reference/engine/nav/navigate-h_REF.gc | 4 +- .../engine/physics/dynamics-h_REF.gc | 16 +- .../engine/physics/trajectory-h_REF.gc | 2 +- .../engine/target/joint-mod-h_REF.gc | 8 +- .../levels/common/nav-enemy-h_REF.gc | 102 +++---- 55 files changed, 939 insertions(+), 742 deletions(-) diff --git a/common/goal_constants.h b/common/goal_constants.h index 974e291620..81f5a46fbe 100644 --- a/common/goal_constants.h +++ b/common/goal_constants.h @@ -1,8 +1,5 @@ #pragma once -#ifndef JAK_GOAL_CONSTANTS_H -#define JAK_GOAL_CONSTANTS_H - #include "common_types.h" constexpr s32 BINTEGER_OFFSET = 0; @@ -36,4 +33,7 @@ constexpr u64 EE_MAIN_MEM_MAP = 0x2123000000; // intentionally > 32-bit to // so this should be used only for debugging. constexpr bool EE_MEM_LOW_MAP = false; -#endif // JAK_GOAL_CONSTANTS_H +constexpr double METER_LENGTH = 4096.0; +constexpr double DEGREES_PER_ROT = 65536.0; +constexpr double DEGREES_LENGTH = DEGREES_PER_ROT / 360.0; +constexpr u64 TICKS_PER_SECOND = 300.0; diff --git a/common/type_system/TypeSystem.cpp b/common/type_system/TypeSystem.cpp index 8ab18a34e2..4c06256052 100644 --- a/common/type_system/TypeSystem.cpp +++ b/common/type_system/TypeSystem.cpp @@ -965,6 +965,13 @@ void TypeSystem::add_builtin_types() { add_builtin_value_type("uinteger", "uint64", 8); add_builtin_value_type("uinteger", "uint128", 16, false, false, RegClass::INT_128); + // add special units types. + add_builtin_value_type("float", "meters", 4, false, false, RegClass::FLOAT) + ->set_runtime_type("float"); + add_builtin_value_type("float", "degrees", 4, false, false, RegClass::FLOAT) + ->set_runtime_type("float"); + add_builtin_value_type("uint64", "seconds", 8, false, false)->set_runtime_type("uint64"); + auto int_type = add_builtin_value_type("integer", "int", 8, false, true); int_type->disallow_in_runtime(); auto uint_type = add_builtin_value_type("uinteger", "uint", 8, false, false); @@ -1352,8 +1359,23 @@ bool TypeSystem::typecheck_and_throw(const TypeSpec& expected, /*! * Is actual of type expected? For base types. */ -bool TypeSystem::typecheck_base_types(const std::string& expected, +bool TypeSystem::typecheck_base_types(const std::string& input_expected, const std::string& actual) const { + std::string expected = input_expected; + + // the unit types aren't picky. + if (expected == "meters") { + expected = "float"; + } + + if (expected == "seconds") { + expected = "uint"; + } + + if (expected == "degrees") { + expected = "float"; + } + // just to make sure it exists. lookup_type_allow_partial_def(expected); diff --git a/decompiler/IR2/AtomicOpTypeAnalysis.cpp b/decompiler/IR2/AtomicOpTypeAnalysis.cpp index 2f07f8a60f..58f5c1e941 100644 --- a/decompiler/IR2/AtomicOpTypeAnalysis.cpp +++ b/decompiler/IR2/AtomicOpTypeAnalysis.cpp @@ -557,7 +557,7 @@ TP_Type SimpleExpression::get_type_int2(const TypeState& input, if (m_kind == Kind::ADD && tc(dts, TypeSpec("structure"), arg0_type) && arg1_type.is_integer_constant()) { auto type_info = dts.ts.lookup_type(arg0_type.typespec()); - if (type_info->get_size_in_memory() == arg1_type.get_integer_constant()) { + if ((u64)type_info->get_size_in_memory() == arg1_type.get_integer_constant()) { return TP_Type::make_from_ts(arg0_type.typespec()); } } diff --git a/decompiler/IR2/Form.h b/decompiler/IR2/Form.h index 0eae101166..06d36e1c1f 100644 --- a/decompiler/IR2/Form.h +++ b/decompiler/IR2/Form.h @@ -1274,6 +1274,7 @@ class ConstantFloatElement : public FormElement { FormStack& stack, std::vector* result, bool allow_side_effects) override; + float value() const { return m_value; } private: float m_value; @@ -1770,5 +1771,9 @@ GenericElement* alloc_generic_token_op(const std::string& name, const std::vector& args, FormPool& pool); Form* alloc_var_form(const RegisterAccess& var, FormPool& pool); -Form* try_cast_simplify(Form* in, const TypeSpec& new_type, FormPool& pool, const Env& env); +Form* try_cast_simplify(Form* in, + const TypeSpec& new_type, + FormPool& pool, + const Env& env, + bool tc_pass = false); } // namespace decompiler diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index 19edd46998..a8df31fc8e 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -64,14 +64,59 @@ Form* strip_pcypld_64(Form* in) { return in; } } + +std::optional get_goal_float_constant(Form* in) { + auto as_fc = in->try_as_element(); + if (as_fc) { + return as_fc->value(); + } + return {}; +} } // namespace -Form* try_cast_simplify(Form* in, const TypeSpec& new_type, FormPool& pool, const Env& env) { +Form* try_cast_simplify(Form* in, + const TypeSpec& new_type, + FormPool& pool, + const Env& env, + bool tc_pass) { auto in_as_cast = dynamic_cast(in->try_as_single_element()); if (in_as_cast && in_as_cast->type() == new_type) { return in; // no need to cast again, it already has it! } + if (new_type == TypeSpec("meters")) { + auto fc = get_goal_float_constant(in); + + if (fc) { + double div = (double)*fc / METER_LENGTH; // GOOS will use doubles here + if (div * METER_LENGTH == *fc) { + return pool.alloc_single_element_form( + nullptr, + GenericOperator::make_function( + pool.alloc_single_element_form(nullptr, "meters")), + pool.alloc_single_element_form(nullptr, div)); + } else { + lg::error("Floating point value {} could not be converted to meters.", *fc); + } + } + } + + if (new_type == TypeSpec("degrees")) { + auto fc = get_goal_float_constant(in); + if (fc) { + double div = (double)*fc / DEGREES_LENGTH; // GOOS will use doubles here + if (div * DEGREES_LENGTH == *fc) { + return pool.alloc_single_element_form( + nullptr, + GenericOperator::make_function( + pool.alloc_single_element_form(nullptr, "degrees")), + pool.alloc_single_element_form(nullptr, div)); + } else { + lg::error("Floating point value {} could not be converted to degrees.", *fc); + } + } + } + auto type_info = env.dts->ts.lookup_type(new_type); auto bitfield_info = dynamic_cast(type_info); if (bitfield_info) { @@ -91,7 +136,11 @@ Form* try_cast_simplify(Form* in, const TypeSpec& new_type, FormPool& pool, cons } } - return nullptr; + if (tc_pass) { + return in; + } else { + return nullptr; + } } bool Form::has_side_effects() { @@ -285,8 +334,12 @@ void pop_helper(const std::vector& vars, /*! * This should be used to generate all casts. */ -Form* cast_form(Form* in, const TypeSpec& new_type, FormPool& pool, const Env& env) { - auto result = try_cast_simplify(in, new_type, pool, env); +Form* cast_form(Form* in, + const TypeSpec& new_type, + FormPool& pool, + const Env& env, + bool tc_pass = false) { + auto result = try_cast_simplify(in, new_type, pool, env, tc_pass); if (result) { return result; } @@ -340,15 +393,12 @@ std::vector pop_to_forms(const std::vector& vars, return forms; } -// TODO - if we start using child classes of float/int/uint for things like degrees/meters -// we may need to adjust these. - /*! * type == float (exactly)? */ bool is_float_type(const Env& env, int my_idx, RegisterAccess var) { auto type = env.get_types_before_op(my_idx).get(var.reg()).typespec(); - return type == TypeSpec("float"); + return env.dts->ts.tc(TypeSpec("float"), type); } /*! @@ -436,6 +486,10 @@ Form* make_cast_if_needed(Form* in, if (in_type == out_type) { return in; } + + if (out_type == TypeSpec("float") && env.dts->ts.tc(TypeSpec("float"), in_type)) { + return in; + } return cast_form(in, out_type, pool, env); } @@ -548,7 +602,8 @@ void SimpleExpressionElement::update_from_stack_fpr_to_gpr(const Env& env, bool allow_side_effects) { auto src = m_expr.get_arg(0); auto src_type = env.get_types_before_op(m_my_idx).get(src.var().reg()); - if (src_type.typespec() == TypeSpec("float") || src_type.typespec() == TypeSpec("int")) { + if (env.dts->ts.tc(TypeSpec("float"), src_type.typespec()) || + src_type.typespec() == TypeSpec("int")) { // set ourself to identity. m_expr = src.as_expr(); // then go again. @@ -2229,8 +2284,9 @@ void FunctionCallElement::update_from_stack(const Env& env, } auto desired_arg_type = function_type.get_arg(arg_id); - if (!env.dts->ts.tc(desired_arg_type, actual_arg_type)) { - arg_forms.push_back(cast_form(val, desired_arg_type, pool, env)); + if (env.dts->should_attempt_cast_simplify(desired_arg_type, actual_arg_type)) { + arg_forms.push_back(cast_form(val, desired_arg_type, pool, env, + env.dts->ts.tc(desired_arg_type, actual_arg_type))); } else { arg_forms.push_back(val); } diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index 74122e1c3d..1ce871a73d 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -2166,8 +2166,8 @@ ) (deftype trsqv (trsq) - ((pause-adjust-distance float :offset 4) ;; todo meters - (nav-radius float :offset 8) ;; todo meters + ((pause-adjust-distance meters :offset 4) + (nav-radius meters :offset 8) (transv vector :inline :offset-assert 64) (rotv vector :inline :offset-assert 80) (scalev vector :inline :offset-assert 96) @@ -4779,7 +4779,7 @@ (bsp-mask uint64 :offset-assert 80) (bsphere sphere :offset-assert 88) (buzzer int32 :offset-assert 92) - (bottom-height float :offset-assert 96) ;; meters + (bottom-height meters :offset-assert 96) (run-packages pair :offset-assert 100) (prev-level basic :offset-assert 104) (next-level basic :offset-assert 108) @@ -4830,7 +4830,7 @@ (ambient entity-ambient-data-array :offset-assert 288) (closest-object float 9 :offset-assert 292) (upload-size int32 9 :offset-assert 328) - (level-distance float :offset-assert 364) ; meters + (level-distance meters :offset-assert 364) (inside-sphere? symbol :offset-assert 368) (inside-boxes? symbol :offset-assert 372) (display? symbol :offset-assert 376) @@ -4977,9 +4977,9 @@ ) (deftype math-camera (basic) - ((d float :offset-assert 4) ;; meters - (f float :offset-assert 8) ;; meters - (fov float :offset-assert 12) ;; deg + ((d meters :offset-assert 4) + (f meters :offset-assert 8) + (fov degrees :offset-assert 12) (x-ratio float :offset-assert 16) (y-ratio float :offset-assert 20) (x-pix float :offset-assert 24) @@ -4991,8 +4991,8 @@ (y-clip-ratio-in float :offset-assert 48) (y-clip-ratio-over float :offset-assert 52) (cull-info cull-info :inline :offset-assert 56) - (fog-start float :offset-assert 120) ;; meters - (fog-end float :offset-assert 124) ;; meters + (fog-start meters :offset-assert 120) + (fog-end meters :offset-assert 124) (fog-max float :offset-assert 128) (fog-min float :offset-assert 132) (reset int32 :offset-assert 136) @@ -7100,8 +7100,8 @@ (deftype mood-fog (structure) ((fog-color vector :inline :offset-assert 0) (fog-dists vector :inline :offset-assert 16) - (fog-start float :offset 16) ;; meters - (fog-end float :offset 20) ;;meters + (fog-start meters :offset 16) + (fog-end meters :offset 20) (fog-max float :offset 24) (fog-min float :offset 28) (erase-color vector :inline :offset-assert 32) @@ -7496,11 +7496,11 @@ (jgeo int32 :offset-assert 8) (janim int32 :offset-assert 12) (bounds vector :inline :offset-assert 16) - (radius float :offset 28) ;; meters + (radius meters :offset 28) (mgeo uint16 4 :offset-assert 32) (max-lod int32 :offset-assert 40) (lod-dist float 4 :offset-assert 44) - (longest-edge float :offset-assert 60) ;; meters + (longest-edge meters :offset-assert 60) (texture-level int8 :offset-assert 64) (version int8 :offset-assert 65) (shadow int8 :offset-assert 66) @@ -7515,7 +7515,7 @@ (declare-type merc-ctrl art-element) (deftype lod-group (structure) ((geo merc-ctrl :offset-assert 0) - (dist float :offset-assert 4) ;; meters + (dist meters :offset-assert 4) ) :pack-me :method-count-assert 9 @@ -7556,7 +7556,7 @@ (cur-lod int8 :offset-assert 62) (desired-lod int8 :offset-assert 63) (ripple ripple-control :offset-assert 64) - (longest-edge float :offset-assert 68) ;; meters + (longest-edge meters :offset-assert 68) (longest-edge? uint32 :offset 68) (light-index uint8 :offset-assert 72) (dummy uint8 2 :offset-assert 73) @@ -7571,7 +7571,7 @@ (shadow-ctrl shadow-control :offset-assert 96) (origin vector :inline :offset-assert 112) (bounds vector :inline :offset-assert 128) - (radius float :offset 140) ;; meters + (radius meters :offset 140) (color-mult rgbaf :inline :offset-assert 144) (color-emissive rgbaf :inline :offset-assert 160) (secondary-interp float :offset-assert 176) @@ -8942,10 +8942,10 @@ (rdists vector :inline :offset-assert 48) (next uint32 4 :offset-assert 64) (count uint16 4 :offset-assert 80) - (near-plane float :offset 32) ;; meters - (near-stiff float :offset 36) ;; meters - (mid-plane float :offset 40) ;; meters - (far-plane float :offset 44) ;; meters + (near-plane meters :offset 32) + (near-stiff meters :offset 36) + (mid-plane meters :offset 40) + (far-plane meters :offset 44) (rlength-near float :offset 48) (rlength-stiff float :offset 52) (rlength-mid float :offset 56) @@ -9059,7 +9059,7 @@ (param float 2 :offset-assert 24) (group-sub-index int16 :offset-assert 32) (group-size int16 :offset-assert 34) - (dist float :offset-assert 36) ;; meters + (dist meters :offset-assert 36) (eval-time uint32 :offset-assert 40) (inspector-amount float :offset-assert 44) ) @@ -9385,12 +9385,12 @@ (deftype dynamics (basic) ((name basic :offset-assert 4) - (gravity-max float :offset-assert 8) ;; meters - (gravity-length float :offset-assert 12) ;; meters + (gravity-max meters :offset-assert 8) + (gravity-length meters :offset-assert 12) (gravity vector :inline :offset-assert 16) (gravity-normal vector :inline :offset-assert 32) - (walk-distance float :offset-assert 48) ;; meters - (run-distance float :offset-assert 52) ;; meters + (walk-distance meters :offset-assert 48) + (run-distance meters :offset-assert 52) ) :method-count-assert 9 :size-assert #x38 @@ -9570,17 +9570,17 @@ ((eco-level-max float :offset-assert 4) (eco-single-inc float :offset-assert 8) (eco-full-inc float :offset-assert 12) - (eco-single-timeout uint64 :offset-assert 16) ; usec - (eco-full-timeout uint64 :offset-assert 24) ; usec - (dummy uint64 :offset-assert 32) ; usec + (eco-single-timeout seconds :offset-assert 16) + (eco-full-timeout seconds :offset-assert 24) + (dummy seconds :offset-assert 32) (health-max-default float :offset-assert 40) (health-single-inc float :offset-assert 44) (eco-pill-max-default float :offset-assert 48) (health-small-inc float :offset-assert 52) (buzzer-max-default float :offset-assert 56) (buzzer-single-inc float :offset-assert 60) - (suck-bounce-dist float :offset-assert 64) ; meters - (suck-suck-dist float :offset-assert 68) ; meters + (suck-bounce-dist meters :offset-assert 64) + (suck-suck-dist meters :offset-assert 68) (default-pill-inc float :offset-assert 72) ) :method-count-assert 9 @@ -9611,7 +9611,7 @@ ((eco-type int32 :offset-assert 40) (eco-level float :offset-assert 44) (eco-pickup-time uint64 :offset-assert 48) - (eco-timeout uint64 :offset-assert 56) ;; usec + (eco-timeout seconds :offset-assert 56) (health float :offset-assert 64) (health-max float :offset-assert 68) (buzzer float :offset-assert 72) @@ -9636,12 +9636,12 @@ (deftype fact-info-enemy (fact-info) ((speed float :offset-assert 40) - (idle-distance float :offset-assert 44) ; meters - (notice-top float :offset-assert 48) ; meters - (notice-bottom float :offset-assert 52) ; meters - (cam-horz float :offset-assert 56) ; meters - (cam-vert float :offset-assert 60) ; meters - (cam-notice-dist float :offset-assert 64) ; meters + (idle-distance meters :offset-assert 44) + (notice-top meters :offset-assert 48) + (notice-bottom meters :offset-assert 52) + (cam-horz meters :offset-assert 56) + (cam-vert meters :offset-assert 60) + (cam-notice-dist meters :offset-assert 64) ) :method-count-assert 12 :size-assert #x44 @@ -9678,7 +9678,7 @@ (matrix matrix 2 :inline :offset-assert 32) (transform transform 2 :inline :offset-assert 160) (delta transformq :inline :offset-assert 256) - (last-speed float :offset-assert 304);; meters + (last-speed meters :offset-assert 304) (align transformq :inline :offset 160) ) :method-count-assert 14 @@ -9801,13 +9801,13 @@ (invinc-time uint64 :offset-assert 56) (mask uint32 :offset-assert 64) (mode basic :offset-assert 68) - (shove-back float :offset-assert 72) ;; meters - (shove-up float :offset-assert 76) ;; meters - (speed float :offset-assert 80) ;; meters - (dist float :offset-assert 84) ;; meters + (shove-back meters :offset-assert 72) + (shove-up meters :offset-assert 76) + (speed meters :offset-assert 80) + (dist meters :offset-assert 84) (control float :offset-assert 88) (angle basic :offset-assert 92) - (rotate-to float :offset-assert 96) ;; deg + (rotate-to degrees :offset-assert 96) (prev-state basic :offset-assert 100) ) :method-count-assert 10 @@ -9869,7 +9869,7 @@ (deftype part-spawner (process-drawable) ((mode uint32 :offset-assert 176) (enable basic :offset-assert 180) - (radius float :offset-assert 184) ;; meters + (radius meters :offset-assert 184) (world-sphere sphere :inline :offset-assert 192) ) :heap-base #x60 @@ -9958,8 +9958,8 @@ (deftype swingpole (process) ((root basic :offset-assert 112) (dir vector :inline :offset-assert 128) - (range float :offset-assert 144) ;; meters - (edge-length float :offset-assert 148) ;; meters + (range meters :offset-assert 144) + (edge-length meters :offset-assert 148) ) :heap-base #x30 :method-count-assert 14 @@ -10251,7 +10251,7 @@ ((initial-position vector :inline :offset-assert 0) (initial-velocity vector :inline :offset-assert 16) (time float :offset-assert 32) - (gravity float :offset-assert 36) ;; meters + (gravity meters :offset-assert 36) ) :method-count-assert 16 :size-assert #x28 @@ -10341,8 +10341,8 @@ (notice-time uint64 :offset-assert 112) (flex-blend float :offset-assert 120) (blend float :offset-assert 124) - (max-dist float :offset-assert 128) ;; meters - (ignore-angle float :offset-assert 132) ;; deg + (max-dist meters :offset-assert 128) + (ignore-angle degrees :offset-assert 132) (up uint8 :offset-assert 136) (nose uint8 :offset-assert 137) (ear uint8 :offset-assert 138) @@ -10676,7 +10676,7 @@ (action uint32 :offset 40) (offense int8 :offset 44) (prim-type int8 :offset 45) - (radius float :offset 60) ;; meters + (radius meters :offset 60) ) :method-count-assert 28 :size-assert #x48 @@ -10871,7 +10871,7 @@ (ground-poly-normal vector :inline :offset-assert 368) (ground-touch-point vector :inline :offset-assert 384) (shadow-pos vector :inline :offset-assert 400) - (ground-impact-vel float :offset-assert 416) ;; meters + (ground-impact-vel meters :offset-assert 416) (surface-angle float :offset-assert 420) (poly-angle float :offset-assert 424) (touch-angle float :offset-assert 428) @@ -13176,8 +13176,8 @@ (deftype sparticle-group-item (structure) ((launcher uint32 :offset-assert 0) - (fade-after float :offset-assert 4) ;; meters - (falloff-to float :offset-assert 8) ;; meters + (fade-after meters :offset-assert 4) + (falloff-to meters :offset-assert 8) (flags uint16 :offset-assert 12) (period uint16 :offset-assert 14) (length uint16 :offset-assert 16) @@ -13397,12 +13397,12 @@ (joypad uint32 :offset-assert 8) (min-detectable-velocity float :offset-assert 12) (attack-timeout uint64 :offset-assert 16) - (default-string-max-y float :offset-assert 24) ; meters - (default-string-min-y float :offset-assert 28) ; meters - (default-string-max-z float :offset-assert 32) ; meters - (default-string-min-z float :offset-assert 36) ; meters - (default-string-push-z float :offset-assert 40) ; meters - (default-tilt-adjust float :offset-assert 44) ; deg + (default-string-max-y meters :offset-assert 24) + (default-string-min-y meters :offset-assert 28) + (default-string-max-z meters :offset-assert 32) + (default-string-min-z meters :offset-assert 36) + (default-string-push-z meters :offset-assert 40) + (default-tilt-adjust degrees :offset-assert 44) ) :method-count-assert 9 :size-assert #x30 @@ -14201,7 +14201,7 @@ (dest-pos vector :inline :offset-assert 32) (current-poly nav-poly :offset-assert 48) (next-poly nav-poly :offset-assert 52) - (len float :offset-assert 56) ;; meters + (len meters :offset-assert 56) (last-edge int8 :offset-assert 60) (terminated basic :offset-assert 64) (reached-dest basic :offset-assert 68) @@ -14357,7 +14357,7 @@ (next-poly nav-poly :offset-assert 32) (target-poly nav-poly :offset-assert 36) (portal nav-route-portal 2 :offset-assert 40) ;; guess - (nearest-y-threshold float :offset-assert 48) ;; meters + (nearest-y-threshold meters :offset-assert 48) (event-temp vector :inline :offset-assert 64) (old-travel vector :inline :offset-assert 80) (blocked-travel vector :inline :offset-assert 96) @@ -15098,7 +15098,7 @@ ;; - Unknowns -(define-extern add-debug-vector (function symbol bucket-id vector vector float rgba symbol)) +(define-extern add-debug-vector (function symbol bucket-id vector vector meters rgba symbol)) (define-extern *debug-lines* (inline-array debug-line)) (define-extern *debug-lines-trk* debug-tracking-thang) (define-extern *debug-text-3ds* (inline-array debug-text-3d)) @@ -17577,24 +17577,24 @@ (process process :offset-assert 8) (joint-index int32 :offset-assert 12) (top-y-offset float :offset-assert 16) - (ripple-size float :offset-assert 20) ; meters + (ripple-size meters :offset-assert 20) (enter-water-time uint64 :offset-assert 24) (wade-time uint64 :offset-assert 32) (on-water-time uint64 :offset-assert 40) (enter-swim-time uint64 :offset-assert 48) (swim-time uint64 :offset-assert 56) - (base-height float :offset-assert 64) ; meters - (wade-height float :offset-assert 68) ; meters - (swim-height float :offset-assert 72) ; meters - (surface-height float :offset-assert 76) ; meters - (bottom-height float :offset-assert 80) ; meters - (height float :offset-assert 84) ; meters + (base-height meters :offset-assert 64) + (wade-height meters :offset-assert 68) + (swim-height meters :offset-assert 72) + (surface-height meters :offset-assert 76) + (bottom-height meters :offset-assert 80) + (height meters :offset-assert 84) (height-offset float 4 :offset-assert 88) - (real-ocean-offset float :offset 88) ; meters - (ocean-offset float :offset 92) ; meters - (bob-offset float :offset 96) ; meters - (align-offset float :offset 100) ; meters - (swim-depth float :offset-assert 104) ; meters + (real-ocean-offset meters :offset 88) + (ocean-offset meters :offset 92) + (bob-offset meters :offset 96) + (align-offset meters :offset 100) + (swim-depth meters :offset-assert 104) (bob smush-control :inline :offset-assert 112) (volume uint64 :offset-assert 144) ;; handle? (bottom vector 2 :inline :offset-assert 160) @@ -17605,7 +17605,7 @@ (drip-wetness float :offset-assert 260) (drip-time uint64 :offset-assert 264) (drip-speed float :offset-assert 272) - (drip-height float :offset-assert 276) ; meters + (drip-height meters :offset-assert 276) (drip-mult float :offset-assert 280) ) :method-count-assert 17 @@ -17625,10 +17625,10 @@ ) (deftype water-vol (process-drawable) - ((water-height float :offset-assert 176) ;; meters - (wade-height float :offset-assert 180) ;; meters - (swim-height float :offset-assert 184) ;; meters - (bottom-height float :offset-assert 188) ;; meters + ((water-height meters :offset-assert 176) + (wade-height meters :offset-assert 180) + (swim-height meters :offset-assert 184) + (bottom-height meters :offset-assert 188) (attack-event basic :offset-assert 192) (target uint64 :offset-assert 200) (flags uint32 :offset-assert 208) @@ -17729,9 +17729,9 @@ ;; - Types (deftype camera-master-bank (basic) - ((onscreen-head-height float :offset-assert 4) ;; meters - (onscreen-foot-height float :offset-assert 8) ;; meters - (target-height float :offset-assert 12) ;; meters + ((onscreen-head-height meters :offset-assert 4) + (onscreen-foot-height meters :offset-assert 8) + (target-height meters :offset-assert 12) (up-move-to-pitch-ratio-in-air float :offset-assert 16) (down-move-to-pitch-ratio-in-air float :offset-assert 20) (up-move-to-pitch-on-ground float :offset-assert 24) @@ -17920,8 +17920,8 @@ ;; - Types (deftype cam-point-watch-bank (basic) - ((speed float :offset-assert 4) - (rot-speed float :offset-assert 8) ;; deg + ((speed float :offset-assert 4) + (rot-speed degrees :offset-assert 8) ) :method-count-assert 9 :size-assert #xc @@ -17929,8 +17929,8 @@ ) (deftype cam-free-bank (basic) - ((speed float :offset-assert 4) - (rot-speed float :offset-assert 8) ;; deg + ((speed float :offset-assert 4) + (rot-speed degrees :offset-assert 8) ) :method-count-assert 9 :size-assert #xc @@ -18769,8 +18769,8 @@ ; (flop-radius meters :offset-assert 512) ; (flop0-offset vector :inline :offset-assert 528) ; (flop1-offset vector :inline :offset-assert 544) -; (stuck-time useconds :offset-assert 560) -; (stuck-timeout useconds :offset-assert 568) +; (stuck-time seconds :offset-assert 560) +; (stuck-timeout seconds :offset-assert 568) ; (stuck-distance meters :offset-assert 576) ; (tongue-pull-speed-min float :offset-assert 580) ; (tongue-pull-speed-max float :offset-assert 584) @@ -21945,33 +21945,33 @@ (die-anim int32 :offset-assert 40) (neck-joint int32 :offset-assert 44) (player-look-at-joint int32 :offset-assert 48) - (run-travel-speed float :offset-assert 52) ; meters - (run-rotate-speed float :offset-assert 56) ; deg - (run-acceleration float :offset-assert 60) ; meters - (run-turn-time uint64 :offset-assert 64) ; seconds - (walk-travel-speed float :offset-assert 72) ; meters - (walk-rotate-speed float :offset-assert 76) ; deg - (walk-acceleration float :offset-assert 80) ; meters - (walk-turn-time uint64 :offset-assert 88) ; seconds - (attack-shove-back float :offset-assert 96) ; meters - (attack-shove-up float :offset-assert 100) ; meters - (shadow-size float :offset-assert 104) ; meters - (notice-nav-radius float :offset-assert 108) ; meters - (nav-nearest-y-threshold float :offset-assert 112) ; meters - (notice-distance float :offset-assert 116) ; meters - (proximity-notice-distance float :offset-assert 120) ; meters - (stop-chase-distance float :offset-assert 124) ; meters - (frustration-distance float :offset-assert 128) ; meters + (run-travel-speed meters :offset-assert 52) + (run-rotate-speed degrees :offset-assert 56) + (run-acceleration meters :offset-assert 60) + (run-turn-time seconds :offset-assert 64) + (walk-travel-speed meters :offset-assert 72) + (walk-rotate-speed degrees :offset-assert 76) + (walk-acceleration meters :offset-assert 80) + (walk-turn-time seconds :offset-assert 88) + (attack-shove-back meters :offset-assert 96) + (attack-shove-up meters :offset-assert 100) + (shadow-size meters :offset-assert 104) + (notice-nav-radius meters :offset-assert 108) + (nav-nearest-y-threshold meters :offset-assert 112) + (notice-distance meters :offset-assert 116) + (proximity-notice-distance meters :offset-assert 120) + (stop-chase-distance meters :offset-assert 124) + (frustration-distance meters :offset-assert 128) (frustration-time uint64 :offset-assert 136) (die-anim-hold-frame float :offset-assert 144) (jump-anim-start-frame float :offset-assert 148) (jump-land-anim-end-frame float :offset-assert 152) - (jump-height-min float :offset-assert 156) ; meters + (jump-height-min meters :offset-assert 156) (jump-height-factor float :offset-assert 160) (jump-start-anim-speed float :offset-assert 164) - (shadow-max-y float :offset-assert 168) ; meters - (shadow-min-y float :offset-assert 172) ; meters - (shadow-locus-dist float :offset-assert 176) ; meters + (shadow-max-y meters :offset-assert 168) + (shadow-min-y meters :offset-assert 172) + (shadow-locus-dist meters :offset-assert 176) (use-align basic :offset-assert 180) (draw-shadow basic :offset-assert 184) (move-to-ground basic :offset-assert 188) @@ -23956,15 +23956,15 @@ ; (deftype pelican-bank (basic) ; ((circle-speed meters :offset-assert 4) -; (dive-time useconds :offset-assert 8) -; (to-nest0-time useconds :offset-assert 16) -; (to-nest1-time useconds :offset-assert 24) -; (land-time useconds :offset-assert 32) -; (from-nest-time useconds :offset-assert 40) -; (spit-time useconds :offset-assert 48) -; (pre-spit-wait-time useconds :offset-assert 56) -; (post-spit-wait-time useconds :offset-assert 64) -; (run-away-time useconds :offset-assert 72) +; (dive-time seconds :offset-assert 8) +; (to-nest0-time seconds :offset-assert 16) +; (to-nest1-time seconds :offset-assert 24) +; (land-time seconds :offset-assert 32) +; (from-nest-time seconds :offset-assert 40) +; (spit-time seconds :offset-assert 48) +; (pre-spit-wait-time seconds :offset-assert 56) +; (post-spit-wait-time seconds :offset-assert 64) +; (run-away-time seconds :offset-assert 72) ; ) ; :method-count-assert 9 ; :size-assert #x50 @@ -30285,17 +30285,17 @@ ; ((y-offset meters :offset-assert 176) ; (y-offset-grips meters :offset-assert 180) ; (height meters :offset-assert 184) -; (turn deg :offset-assert 188) -; (tilt deg :offset-assert 192) -; (target-turn deg :offset-assert 196) -; (target-tilt deg :offset-assert 200) +; (turn degrees :offset-assert 188) +; (tilt degrees :offset-assert 192) +; (target-turn degrees :offset-assert 196) +; (target-tilt degrees :offset-assert 200) ; (base vector :inline :offset-assert 208) ; (reflector-trans vector :inline :offset-assert 224) ; (next-reflector-trans vector :inline :offset-assert 240) ; (prev-reflector-trans vector :inline :offset-assert 256) ; (old-camera-matrix matrix :inline :offset-assert 272) ; (reflector uint32 :offset-assert 336) -; (gauge-rot deg :offset-assert 340) +; (gauge-rot degrees :offset-assert 340) ; (lock-time uint64 :offset-assert 344) ; (aligned? basic :offset-assert 352) ; (raised? basic :offset-assert 356) @@ -31121,9 +31121,9 @@ ; (rot vector :inline :offset-assert 80) ; (rot-old vector :inline :offset-assert 96) ; (rotv vector :inline :offset-assert 112) -; (lean-rotx deg :offset-assert 128) -; (change-roty deg :offset-assert 132) -; (change-roty-old deg :offset-assert 136) +; (lean-rotx degrees :offset-assert 128) +; (change-roty degrees :offset-assert 132) +; (change-roty-old degrees :offset-assert 136) ; (quat vector :inline :offset-assert 144) ; (surface-y meters :offset-assert 160) ; (surface-vy meters :offset-assert 164) @@ -31140,7 +31140,7 @@ ; (hill-value float :offset-assert 268) ; (hill-ground-value float :offset-assert 272) ; (hill-offset meters :offset-assert 276) -; (hill-rotx deg :offset-assert 280) +; (hill-rotx degrees :offset-assert 280) ; (hill-boost meters :offset-assert 284) ; (bob-timer float :offset-assert 288) ; (bob-meta-timer float :offset-assert 292) @@ -31150,19 +31150,19 @@ ; (bob-period float :offset-assert 308) ; (bob-meta-time uint64 :offset-assert 312) ; (bob-hit-ground-time uint64 :offset-assert 320) -; (cur-rotx deg :offset-assert 328) -; (targ-rotx deg :offset-assert 332) +; (cur-rotx degrees :offset-assert 328) +; (targ-rotx degrees :offset-assert 332) ; (speed-rotx float :offset-assert 336) -; (mult-rotx deg :offset-assert 340) +; (mult-rotx degrees :offset-assert 340) ; (front-blade basic :offset-assert 344) -; (front-rot deg :offset-assert 348) -; (front-rotv deg :offset-assert 352) +; (front-rot degrees :offset-assert 348) +; (front-rotv degrees :offset-assert 352) ; (bottom-blade basic :offset-assert 356) -; (bottom-rot deg :offset-assert 360) +; (bottom-rot degrees :offset-assert 360) ; (front basic :offset-assert 364) -; (front-turn deg :offset-assert 368) +; (front-turn degrees :offset-assert 368) ; (tail basic :offset-assert 372) -; (tail-tilt deg :offset-assert 376) +; (tail-tilt degrees :offset-assert 376) ; (transv-max meters :offset-assert 380) ; (slide-down-time UNKNOWN 2 :offset-assert 384) ; (slide-enter-time uint64 :offset-assert 400) @@ -31207,7 +31207,7 @@ ; ) ; (deftype racer-bank (basic) -; ((slide-hold-time useconds :offset-assert 8) +; ((slide-hold-time seconds :offset-assert 8) ; (heat-max float :offset-assert 16) ; (hotcoals-heat-inc float :offset-assert 20) ; (lava-heat-inc float :offset-assert 24) @@ -31222,8 +31222,8 @@ ; (boost-curve-max meters :offset-assert 60) ; (boost-level-max meters :offset-assert 64) ; (boost-level-inc meters :offset-assert 68) -; (boost-duration useconds :offset-assert 72) -; (default-front-blade deg :offset-assert 80) +; (boost-duration seconds :offset-assert 72) +; (default-front-blade degrees :offset-assert 80) ; (yellow-projectile-speed meters :offset-assert 84) ; ) ; :method-count-assert 9 @@ -31977,7 +31977,7 @@ ; (push-velocity vector :inline :offset-assert 224) ; (home-base vector :inline :offset-assert 240) ; (dest-base vector :inline :offset-assert 256) -; (dest-rot deg :offset-assert 272) +; (dest-rot degrees :offset-assert 272) ; (enable-turn-around basic :offset-assert 276) ; (rotating basic :offset-assert 280) ; (in-pen basic :offset-assert 284) diff --git a/decompiler/util/DecompilerTypeSystem.cpp b/decompiler/util/DecompilerTypeSystem.cpp index 1065977707..bfb28cecdb 100644 --- a/decompiler/util/DecompilerTypeSystem.cpp +++ b/decompiler/util/DecompilerTypeSystem.cpp @@ -434,4 +434,21 @@ TypeSpec DecompilerTypeSystem::lookup_symbol_type(const std::string& name) const return kv->second; } } + +bool DecompilerTypeSystem::should_attempt_cast_simplify(const TypeSpec& expected, + const TypeSpec& actual) const { + if (expected == TypeSpec("meters") && actual == TypeSpec("float")) { + return true; + } + + if (expected == TypeSpec("seconds") && actual == TypeSpec("uint64")) { + return true; + } + + if (expected == TypeSpec("degrees") && actual == TypeSpec("float")) { + return true; + } + + return !ts.tc(expected, actual); +} } // namespace decompiler diff --git a/decompiler/util/DecompilerTypeSystem.h b/decompiler/util/DecompilerTypeSystem.h index d1ec31e446..03f2eb0639 100644 --- a/decompiler/util/DecompilerTypeSystem.h +++ b/decompiler/util/DecompilerTypeSystem.h @@ -43,6 +43,7 @@ class DecompilerTypeSystem { int get_format_arg_count(const std::string& str) const; int get_format_arg_count(const TP_Type& type) const; TypeSpec lookup_symbol_type(const std::string& name) const; + bool should_attempt_cast_simplify(const TypeSpec& expected, const TypeSpec& actual) const; // todo - totally eliminate this. struct { diff --git a/decompiler/util/data_decompile.cpp b/decompiler/util/data_decompile.cpp index 8b237ffffa..d31a4d4ce4 100644 --- a/decompiler/util/data_decompile.cpp +++ b/decompiler/util/data_decompile.cpp @@ -857,11 +857,35 @@ goos::Object decompile_value(const TypeSpec& type, } else { return pretty_print::to_symbol(fmt::format("{}", value)); } + } else if (type == TypeSpec("seconds")) { + assert(bytes.size() == 8); + u64 value; + memcpy(&value, bytes.data(), 8); + + // only rewrite if exact. + u64 seconds = value / TICKS_PER_SECOND; + if (seconds * TICKS_PER_SECOND == value) { + return pretty_print::to_symbol(fmt::format("(seconds {})", seconds)); + } + + return pretty_print::to_symbol(fmt::format("#x{:x}", value)); } else if (ts.tc(TypeSpec("uint64"), type)) { assert(bytes.size() == 8); u64 value; memcpy(&value, bytes.data(), 8); return pretty_print::to_symbol(fmt::format("#x{:x}", value)); + } else if (type == TypeSpec("meters")) { + assert(bytes.size() == 4); + float value; + memcpy(&value, bytes.data(), 4); + double meters = (double)value / METER_LENGTH; + return pretty_print::build_list("meters", pretty_print::float_representation(meters)); + } else if (type == TypeSpec("degrees")) { + assert(bytes.size() == 4); + float value; + memcpy(&value, bytes.data(), 4); + double degrees = (double)value / DEGREES_LENGTH; + return pretty_print::build_list("degrees", pretty_print::float_representation(degrees)); } else if (ts.tc(TypeSpec("float"), type)) { assert(bytes.size() == 4); float value; diff --git a/docs/markdown/progress-notes/changelog.md b/docs/markdown/progress-notes/changelog.md index 494ea29a28..19dadf9560 100644 --- a/docs/markdown/progress-notes/changelog.md +++ b/docs/markdown/progress-notes/changelog.md @@ -177,4 +177,5 @@ - Lambdas and methods now support `:behavior` to specify the current process type. - `defbehavior` has been added to define a global behavior. - Auto-generated inspect methods of process now start by calling the parent type's inspect, like in GOAL. -- Fields with type `(inline-array thing)` can now be set in statics. \ No newline at end of file +- Fields with type `(inline-array thing)` can now be set in statics. +- `meters`, `degrees`, and `seconds` types have been added. \ No newline at end of file diff --git a/goal_src/engine/anim/aligner-h.gc b/goal_src/engine/anim/aligner-h.gc index 134f144a53..41e6eb6a4d 100644 --- a/goal_src/engine/anim/aligner-h.gc +++ b/goal_src/engine/anim/aligner-h.gc @@ -7,15 +7,15 @@ (deftype align-control (basic) - ((flags uint32 :offset-assert 4) - (process process-drawable :offset-assert 8) - (frame-group art-joint-anim :offset-assert 12) - (frame-num float :offset-assert 16) - (matrix matrix 2 :inline :offset-assert 32) - (transform transform 2 :inline :offset-assert 160) - (delta transformq :inline :offset-assert 256) - (last-speed float :offset-assert 304);; meters - (align transformq :inline :offset 160) + ((flags uint32 :offset-assert 4) + (process process-drawable :offset-assert 8) + (frame-group art-joint-anim :offset-assert 12) + (frame-num float :offset-assert 16) + (matrix matrix 2 :inline :offset-assert 32) + (transform transform 2 :inline :offset-assert 160) + (delta transformq :inline :offset-assert 256) + (last-speed meters :offset-assert 304) + (align transformq :inline :offset 160) ) :method-count-assert 14 :size-assert #x134 diff --git a/goal_src/engine/anim/joint-h.gc b/goal_src/engine/anim/joint-h.gc index 87878901d9..5586766985 100644 --- a/goal_src/engine/anim/joint-h.gc +++ b/goal_src/engine/anim/joint-h.gc @@ -16,7 +16,7 @@ (param float 2 :offset-assert 24) (group-sub-index int16 :offset-assert 32) (group-size int16 :offset-assert 34) - (dist float :offset-assert 36) ;; meters + (dist meters :offset-assert 36) (eval-time uint32 :offset-assert 40) (inspector-amount float :offset-assert 44) ) diff --git a/goal_src/engine/camera/camera-h.gc b/goal_src/engine/camera/camera-h.gc index 0209a32012..19fc1d4e1f 100644 --- a/goal_src/engine/camera/camera-h.gc +++ b/goal_src/engine/camera/camera-h.gc @@ -7,16 +7,16 @@ ;; definition of type camera-bank (deftype camera-bank (basic) - ((collide-move-rad float :offset-assert 4) - (joypad uint32 :offset-assert 8) - (min-detectable-velocity float :offset-assert 12) - (attack-timeout uint64 :offset-assert 16) - (default-string-max-y float :offset-assert 24) - (default-string-min-y float :offset-assert 28) - (default-string-max-z float :offset-assert 32) - (default-string-min-z float :offset-assert 36) - (default-string-push-z float :offset-assert 40) - (default-tilt-adjust float :offset-assert 44) + ((collide-move-rad float :offset-assert 4) + (joypad uint32 :offset-assert 8) + (min-detectable-velocity float :offset-assert 12) + (attack-timeout uint64 :offset-assert 16) + (default-string-max-y meters :offset-assert 24) + (default-string-min-y meters :offset-assert 28) + (default-string-max-z meters :offset-assert 32) + (default-string-min-z meters :offset-assert 36) + (default-string-push-z meters :offset-assert 40) + (default-tilt-adjust degrees :offset-assert 44) ) :method-count-assert 9 :size-assert #x30 @@ -29,12 +29,12 @@ :collide-move-rad 1638.4 :min-detectable-velocity 40.96 :attack-timeout #x4b - :default-string-max-y 12288.0 - :default-string-min-y 4096.0 - :default-string-max-z 51200.0 - :default-string-min-z 20480.0 - :default-string-push-z 40960.0 - :default-tilt-adjust -1183.289 + :default-string-max-y (meters 3.0) + :default-string-min-y (meters 1.0) + :default-string-max-z (meters 12.5) + :default-string-min-z (meters 5.0) + :default-string-push-z (meters 10.0) + :default-tilt-adjust (degrees -6.5000005) ) ) diff --git a/goal_src/engine/camera/math-camera-h.gc b/goal_src/engine/camera/math-camera-h.gc index 739087b1e1..b26b00cd59 100644 --- a/goal_src/engine/camera/math-camera-h.gc +++ b/goal_src/engine/camera/math-camera-h.gc @@ -47,54 +47,54 @@ ) (deftype math-camera (basic) - ((d float :offset-assert 4) ;; meters, camera near plane - (f float :offset-assert 8) ;; meters, camera far plane - (fov float :offset-assert 12) ;; deg, field of view angle - (x-ratio float :offset-assert 16) - (y-ratio float :offset-assert 20) - (x-pix float :offset-assert 24) - (x-clip float :offset-assert 28) - (x-clip-ratio-in float :offset-assert 32) - (x-clip-ratio-over float :offset-assert 36) - (y-pix float :offset-assert 40) - (y-clip float :offset-assert 44) - (y-clip-ratio-in float :offset-assert 48) - (y-clip-ratio-over float :offset-assert 52) - (cull-info cull-info :inline :offset-assert 56) - (fog-start float :offset-assert 120) ;; meters - (fog-end float :offset-assert 124) ;; meters - (fog-max float :offset-assert 128) - (fog-min float :offset-assert 132) - (reset int32 :offset-assert 136) - (smooth-step float :offset-assert 140) - (smooth-t float :offset-assert 144) - (perspective matrix :inline :offset-assert 160) - (isometric matrix :inline :offset-assert 224) - (sprite-2d matrix :inline :offset-assert 288) - (sprite-2d-hvdf vector :inline :offset-assert 352) - (camera-rot matrix :inline :offset-assert 368) - (inv-camera-rot matrix :inline :offset-assert 432) - (inv-camera-rot-smooth matrix :inline :offset-assert 496) - (inv-camera-rot-smooth-from quaternion :inline :offset-assert 560) - (camera-temp matrix :inline :offset-assert 576) - (prev-camera-temp matrix :inline :offset-assert 640) - (hmge-scale vector :inline :offset-assert 704) - (inv-hmge-scale vector :inline :offset-assert 720) - (hvdf-off vector :inline :offset-assert 736) - (guard vector :inline :offset-assert 752) - (vis-gifs vis-gif-tag 4 :inline :offset-assert 768) - (vis-gifs-quads uint128 4 :offset 768) - (giftex vis-gif-tag :offset 768) - (gifgr vis-gif-tag :offset 784) - (giftex-trans vis-gif-tag :offset 800) - (gifgr-trans vis-gif-tag :offset 816) - (pfog0 float :offset-assert 832) - (pfog1 float :offset-assert 836) - (trans vector :inline :offset-assert 848) - (plane uint128 4 :offset-assert 864) - (guard-plane uint128 4 :offset-assert 928) - (shrub-mat matrix :inline :offset-assert 992) - (fov-correction-factor float :offset-assert 1056) + ((d meters :offset-assert 4) + (f meters :offset-assert 8) + (fov degrees :offset-assert 12) + (x-ratio float :offset-assert 16) + (y-ratio float :offset-assert 20) + (x-pix float :offset-assert 24) + (x-clip float :offset-assert 28) + (x-clip-ratio-in float :offset-assert 32) + (x-clip-ratio-over float :offset-assert 36) + (y-pix float :offset-assert 40) + (y-clip float :offset-assert 44) + (y-clip-ratio-in float :offset-assert 48) + (y-clip-ratio-over float :offset-assert 52) + (cull-info cull-info :inline :offset-assert 56) + (fog-start meters :offset-assert 120) + (fog-end meters :offset-assert 124) + (fog-max float :offset-assert 128) + (fog-min float :offset-assert 132) + (reset int32 :offset-assert 136) + (smooth-step float :offset-assert 140) + (smooth-t float :offset-assert 144) + (perspective matrix :inline :offset-assert 160) + (isometric matrix :inline :offset-assert 224) + (sprite-2d matrix :inline :offset-assert 288) + (sprite-2d-hvdf vector :inline :offset-assert 352) + (camera-rot matrix :inline :offset-assert 368) + (inv-camera-rot matrix :inline :offset-assert 432) + (inv-camera-rot-smooth matrix :inline :offset-assert 496) + (inv-camera-rot-smooth-from quaternion :inline :offset-assert 560) + (camera-temp matrix :inline :offset-assert 576) + (prev-camera-temp matrix :inline :offset-assert 640) + (hmge-scale vector :inline :offset-assert 704) + (inv-hmge-scale vector :inline :offset-assert 720) + (hvdf-off vector :inline :offset-assert 736) + (guard vector :inline :offset-assert 752) + (vis-gifs vis-gif-tag 4 :inline :offset-assert 768) + (vis-gifs-quads uint128 4 :offset 768) + (giftex vis-gif-tag :offset 768) + (gifgr vis-gif-tag :offset 784) + (giftex-trans vis-gif-tag :offset 800) + (gifgr-trans vis-gif-tag :offset 816) + (pfog0 float :offset-assert 832) + (pfog1 float :offset-assert 836) + (trans vector :inline :offset-assert 848) + (plane uint128 4 :offset-assert 864) + (guard-plane uint128 4 :offset-assert 928) + (shrub-mat matrix :inline :offset-assert 992) + (fov-correction-factor float :offset-assert 1056) ) (:methods (new (symbol type) _type_ 0) diff --git a/goal_src/engine/collide/collide-shape-h.gc b/goal_src/engine/collide/collide-shape-h.gc index db9c7449ca..3ac61960b2 100644 --- a/goal_src/engine/collide/collide-shape-h.gc +++ b/goal_src/engine/collide/collide-shape-h.gc @@ -145,7 +145,7 @@ (offense int8 :offset 44) (prim-type int8 :offset 45) ;; overlay of the local-sphere w - (radius float :offset 60) ;; meters + (radius meters :offset 60) ) :method-count-assert 28 :size-assert #x48 @@ -354,7 +354,7 @@ (ground-poly-normal vector :inline :offset-assert 368) (ground-touch-point vector :inline :offset-assert 384) (shadow-pos vector :inline :offset-assert 400) - (ground-impact-vel float :offset-assert 416) ;; meters + (ground-impact-vel meters :offset-assert 416) (surface-angle float :offset-assert 420) (poly-angle float :offset-assert 424) (touch-angle float :offset-assert 428) diff --git a/goal_src/engine/data/art-h.gc b/goal_src/engine/data/art-h.gc index e8f6143dd7..1a793e796e 100644 --- a/goal_src/engine/data/art-h.gc +++ b/goal_src/engine/data/art-h.gc @@ -201,20 +201,20 @@ ) (deftype skeleton-group (basic) - ((art-group-name basic :offset-assert 4) - (jgeo int32 :offset-assert 8) - (janim int32 :offset-assert 12) - (bounds vector :inline :offset-assert 16) - (radius float :offset 28) - (mgeo uint16 4 :offset-assert 32) - (max-lod int32 :offset-assert 40) - (lod-dist float 4 :offset-assert 44) - (longest-edge float :offset-assert 60) - (texture-level int8 :offset-assert 64) - (version int8 :offset-assert 65) - (shadow int8 :offset-assert 66) - (sort int8 :offset-assert 67) - (_pad uint8 4 :offset-assert 68) + ((art-group-name basic :offset-assert 4) + (jgeo int32 :offset-assert 8) + (janim int32 :offset-assert 12) + (bounds vector :inline :offset-assert 16) + (radius meters :offset 28) + (mgeo uint16 4 :offset-assert 32) + (max-lod int32 :offset-assert 40) + (lod-dist float 4 :offset-assert 44) + (longest-edge meters :offset-assert 60) + (texture-level int8 :offset-assert 64) + (version int8 :offset-assert 65) + (shadow int8 :offset-assert 66) + (sort int8 :offset-assert 67) + (_pad uint8 4 :offset-assert 68) ) :method-count-assert 9 :size-assert #x48 @@ -223,8 +223,8 @@ (declare-type merc-ctrl basic) (deftype lod-group (structure) - ((geo merc-ctrl :offset-assert 0) - (dist float :offset-assert 4) ;; meters + ((geo merc-ctrl :offset-assert 0) + (dist meters :offset-assert 4) ) :pack-me :method-count-assert 9 @@ -265,7 +265,7 @@ (cur-lod int8 :offset-assert 62) (desired-lod int8 :offset-assert 63) (ripple ripple-control :offset-assert 64) - (longest-edge float :offset-assert 68) ;; meters + (longest-edge meters :offset-assert 68) (longest-edge? uint32 :offset 68) (light-index uint8 :offset-assert 72) (dummy uint8 2 :offset-assert 73) @@ -280,7 +280,7 @@ (shadow-ctrl shadow-control :offset-assert 96) (origin vector :inline :offset-assert 112) (bounds vector :inline :offset-assert 128) - (radius float :offset 140) ;; meters + (radius meters :offset 140) (color-mult rgbaf :inline :offset-assert 144) (color-emissive rgbaf :inline :offset-assert 160) (secondary-interp float :offset-assert 176) diff --git a/goal_src/engine/debug/debug.gc b/goal_src/engine/debug/debug.gc index f7e01565f6..f7420e26cd 100644 --- a/goal_src/engine/debug/debug.gc +++ b/goal_src/engine/debug/debug.gc @@ -1176,7 +1176,7 @@ ) ) -(defun-debug add-debug-vector ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 float) (arg5 rgba)) +(defun-debug add-debug-vector ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 meters) (arg5 rgba)) (if (not arg0) (return #f) ) diff --git a/goal_src/engine/game/fact-h.gc b/goal_src/engine/game/fact-h.gc index 5f1c4e9c7c..b43b2dae1d 100644 --- a/goal_src/engine/game/fact-h.gc +++ b/goal_src/engine/game/fact-h.gc @@ -9,21 +9,21 @@ ;; All game code should reference *FACT-bank* to determine these parameters (deftype fact-bank (basic) - ((eco-level-max float :offset-assert 4) - (eco-single-inc float :offset-assert 8) - (eco-full-inc float :offset-assert 12) - (eco-single-timeout uint64 :offset-assert 16) ; usec - (eco-full-timeout uint64 :offset-assert 24) ; usec - (dummy uint64 :offset-assert 32) ; usec - (health-max-default float :offset-assert 40) - (health-single-inc float :offset-assert 44) - (eco-pill-max-default float :offset-assert 48) - (health-small-inc float :offset-assert 52) - (buzzer-max-default float :offset-assert 56) - (buzzer-single-inc float :offset-assert 60) - (suck-bounce-dist float :offset-assert 64) ; meters - (suck-suck-dist float :offset-assert 68) ; meters - (default-pill-inc float :offset-assert 72) + ((eco-level-max float :offset-assert 4) + (eco-single-inc float :offset-assert 8) + (eco-full-inc float :offset-assert 12) + (eco-single-timeout seconds :offset-assert 16) + (eco-full-timeout seconds :offset-assert 24) + (dummy seconds :offset-assert 32) + (health-max-default float :offset-assert 40) + (health-single-inc float :offset-assert 44) + (eco-pill-max-default float :offset-assert 48) + (health-small-inc float :offset-assert 52) + (buzzer-max-default float :offset-assert 56) + (buzzer-single-inc float :offset-assert 60) + (suck-bounce-dist meters :offset-assert 64) + (suck-suck-dist meters :offset-assert 68) + (default-pill-inc float :offset-assert 72) ) :method-count-assert 9 :size-assert #x4c @@ -101,23 +101,23 @@ ) (deftype fact-info-target (fact-info) - ((eco-type int32 :offset-assert 40) - (eco-level float :offset-assert 44) - (eco-pickup-time uint64 :offset-assert 48) - (eco-timeout uint64 :offset-assert 56) ;; usec - (health float :offset-assert 64) - (health-max float :offset-assert 68) - (buzzer float :offset-assert 72) - (buzzer-max float :offset-assert 76) - (eco-pill float :offset-assert 80) - (eco-pill-max float :offset-assert 84) - (health-pickup-time uint64 :offset-assert 88) - (eco-source uint64 :offset-assert 96) - (eco-source-time uint64 :offset-assert 104) - (money-pickup-time uint64 :offset-assert 112) - (buzzer-pickup-time uint64 :offset-assert 120) - (fuel-cell-pickup-time uint64 :offset-assert 128) - (eco-pill-pickup-time uint64 :offset-assert 136) + ((eco-type int32 :offset-assert 40) + (eco-level float :offset-assert 44) + (eco-pickup-time uint64 :offset-assert 48) + (eco-timeout seconds :offset-assert 56) + (health float :offset-assert 64) + (health-max float :offset-assert 68) + (buzzer float :offset-assert 72) + (buzzer-max float :offset-assert 76) + (eco-pill float :offset-assert 80) + (eco-pill-max float :offset-assert 84) + (health-pickup-time uint64 :offset-assert 88) + (eco-source uint64 :offset-assert 96) + (eco-source-time uint64 :offset-assert 104) + (money-pickup-time uint64 :offset-assert 112) + (buzzer-pickup-time uint64 :offset-assert 120) + (fuel-cell-pickup-time uint64 :offset-assert 128) + (eco-pill-pickup-time uint64 :offset-assert 136) ) :method-count-assert 12 :size-assert #x90 @@ -128,13 +128,13 @@ ) (deftype fact-info-enemy (fact-info) - ((speed float :offset-assert 40) - (idle-distance float :offset-assert 44) ; meters - (notice-top float :offset-assert 48) ; meters - (notice-bottom float :offset-assert 52) ; meters - (cam-horz float :offset-assert 56) ; meters - (cam-vert float :offset-assert 60) ; meters - (cam-notice-dist float :offset-assert 64) ; meters + ((speed float :offset-assert 40) + (idle-distance meters :offset-assert 44) + (notice-top meters :offset-assert 48) + (notice-bottom meters :offset-assert 52) + (cam-horz meters :offset-assert 56) + (cam-vert meters :offset-assert 60) + (cam-notice-dist meters :offset-assert 64) ) :method-count-assert 12 :size-assert #x44 diff --git a/goal_src/engine/game/game-h.gc b/goal_src/engine/game/game-h.gc index 9db75e3018..31438ff196 100644 --- a/goal_src/engine/game/game-h.gc +++ b/goal_src/engine/game/game-h.gc @@ -96,21 +96,21 @@ ) (deftype attack-info (structure) - ((trans vector :inline :offset-assert 0) - (vector vector :inline :offset-assert 16) - (intersection vector :inline :offset-assert 32) - (attacker uint64 :offset-assert 48) ;; handle - (invinc-time uint64 :offset-assert 56) - (mask uint32 :offset-assert 64) - (mode basic :offset-assert 68) - (shove-back float :offset-assert 72) ;; meters - (shove-up float :offset-assert 76) ;; meters - (speed float :offset-assert 80) ;; meters - (dist float :offset-assert 84) ;; meters - (control float :offset-assert 88) - (angle basic :offset-assert 92) - (rotate-to float :offset-assert 96) ;; deg - (prev-state basic :offset-assert 100) + ((trans vector :inline :offset-assert 0) + (vector vector :inline :offset-assert 16) + (intersection vector :inline :offset-assert 32) + (attacker uint64 :offset-assert 48) ;; handle + (invinc-time uint64 :offset-assert 56) + (mask uint32 :offset-assert 64) + (mode basic :offset-assert 68) + (shove-back meters :offset-assert 72) + (shove-up meters :offset-assert 76) + (speed meters :offset-assert 80) + (dist meters :offset-assert 84) + (control float :offset-assert 88) + (angle basic :offset-assert 92) + (rotate-to degrees :offset-assert 96) + (prev-state basic :offset-assert 100) ) :method-count-assert 10 :size-assert #x68 diff --git a/goal_src/engine/game/generic-obs-h.gc b/goal_src/engine/game/generic-obs-h.gc index 373bbfbc26..f22323a187 100644 --- a/goal_src/engine/game/generic-obs-h.gc +++ b/goal_src/engine/game/generic-obs-h.gc @@ -33,7 +33,7 @@ (deftype part-spawner (process-drawable) ((mode uint32 :offset-assert 176) (enable basic :offset-assert 180) - (radius float :offset-assert 184) ;; meters + (radius meters :offset-assert 184) (world-sphere sphere :inline :offset-assert 192) ) :heap-base #x60 @@ -122,8 +122,8 @@ (deftype swingpole (process) ((root basic :offset-assert 112) (dir vector :inline :offset-assert 128) - (range float :offset-assert 144) ;; meters - (edge-length float :offset-assert 148) ;; meters + (range meters :offset-assert 144) + (edge-length meters :offset-assert 148) ) :heap-base #x30 :method-count-assert 14 diff --git a/goal_src/engine/gfx/mood-h.gc b/goal_src/engine/gfx/mood-h.gc index 8ec5c92988..90935660a0 100644 --- a/goal_src/engine/gfx/mood-h.gc +++ b/goal_src/engine/gfx/mood-h.gc @@ -6,13 +6,13 @@ ;; dgos: GAME, ENGINE (deftype mood-fog (structure) - ((fog-color vector :inline :offset-assert 0) - (fog-dists vector :inline :offset-assert 16) - (fog-start float :offset 16) ;; meters - (fog-end float :offset 20) ;;meters - (fog-max float :offset 24) - (fog-min float :offset 28) - (erase-color vector :inline :offset-assert 32) + ((fog-color vector :inline :offset-assert 0) + (fog-dists vector :inline :offset-assert 16) + (fog-start meters :offset 16) + (fog-end meters :offset 20) + (fog-max float :offset 24) + (fog-min float :offset 28) + (erase-color vector :inline :offset-assert 32) ) :method-count-assert 9 :size-assert #x30 diff --git a/goal_src/engine/gfx/tie/prototype-h.gc b/goal_src/engine/gfx/tie/prototype-h.gc index c16c62c3d7..c8a2aa19f6 100644 --- a/goal_src/engine/gfx/tie/prototype-h.gc +++ b/goal_src/engine/gfx/tie/prototype-h.gc @@ -6,25 +6,25 @@ ;; dgos: GAME, ENGINE (deftype prototype-bucket (basic) - ((name basic :offset-assert 4) - (flags uint32 :offset-assert 8) - (in-level uint16 :offset-assert 12) - (utextures uint16 :offset-assert 14) - (geometry drawable 4 :offset-assert 16) - (dists vector :inline :offset-assert 32) - (rdists vector :inline :offset-assert 48) - (next uint32 4 :offset-assert 64) - (count uint16 4 :offset-assert 80) - (near-plane float :offset 32) - (near-stiff float :offset 36) - (mid-plane float :offset 40) - (far-plane float :offset 44) - (rlength-near float :offset 48) - (rlength-stiff float :offset 52) - (rlength-mid float :offset 56) - (stiffness float :offset 60) - (next-clear uint128 :offset 64) - (count-clear uint64 :offset 80) + ((name basic :offset-assert 4) + (flags uint32 :offset-assert 8) + (in-level uint16 :offset-assert 12) + (utextures uint16 :offset-assert 14) + (geometry drawable 4 :offset-assert 16) + (dists vector :inline :offset-assert 32) + (rdists vector :inline :offset-assert 48) + (next uint32 4 :offset-assert 64) + (count uint16 4 :offset-assert 80) + (near-plane meters :offset 32) + (near-stiff meters :offset 36) + (mid-plane meters :offset 40) + (far-plane meters :offset 44) + (rlength-near float :offset 48) + (rlength-stiff float :offset 52) + (rlength-mid float :offset 56) + (stiffness float :offset 60) + (next-clear uint128 :offset 64) + (count-clear uint64 :offset 80) ) :method-count-assert 9 :size-assert #x58 diff --git a/goal_src/engine/gfx/water/water-h.gc b/goal_src/engine/gfx/water/water-h.gc index 2da83f1299..47cdfcb711 100644 --- a/goal_src/engine/gfx/water/water-h.gc +++ b/goal_src/engine/gfx/water/water-h.gc @@ -7,40 +7,40 @@ ;; definition of type water-control (deftype water-control (basic) - ((flags uint32 :offset-assert 4) - (process process :offset-assert 8) - (joint-index int32 :offset-assert 12) - (top-y-offset float :offset-assert 16) - (ripple-size float :offset-assert 20) ; meters - (enter-water-time uint64 :offset-assert 24) - (wade-time uint64 :offset-assert 32) - (on-water-time uint64 :offset-assert 40) - (enter-swim-time uint64 :offset-assert 48) - (swim-time uint64 :offset-assert 56) - (base-height float :offset-assert 64) ; meters - (wade-height float :offset-assert 68) ; meters - (swim-height float :offset-assert 72) ; meters - (surface-height float :offset-assert 76) ; meters - (bottom-height float :offset-assert 80) ; meters - (height float :offset-assert 84) ; meters - (height-offset float 4 :offset-assert 88) - (real-ocean-offset float :offset 88) ; meters - (ocean-offset float :offset 92) ; meters - (bob-offset float :offset 96) ; meters - (align-offset float :offset 100) ; meters - (swim-depth float :offset-assert 104) ; meters - (bob smush-control :inline :offset-assert 112) - (volume uint64 :offset-assert 144) ;; handle? - (bottom vector 2 :inline :offset-assert 160) - (top vector 2 :inline :offset-assert 192) - (enter-water-pos vector :inline :offset-assert 224) - (drip-old-pos vector :inline :offset-assert 240) - (drip-joint-index int32 :offset-assert 256) - (drip-wetness float :offset-assert 260) - (drip-time uint64 :offset-assert 264) - (drip-speed float :offset-assert 272) - (drip-height float :offset-assert 276) ; meters - (drip-mult float :offset-assert 280) + ((flags uint32 :offset-assert 4) + (process process :offset-assert 8) + (joint-index int32 :offset-assert 12) + (top-y-offset float :offset-assert 16) + (ripple-size meters :offset-assert 20) + (enter-water-time uint64 :offset-assert 24) + (wade-time uint64 :offset-assert 32) + (on-water-time uint64 :offset-assert 40) + (enter-swim-time uint64 :offset-assert 48) + (swim-time uint64 :offset-assert 56) + (base-height meters :offset-assert 64) + (wade-height meters :offset-assert 68) + (swim-height meters :offset-assert 72) + (surface-height meters :offset-assert 76) + (bottom-height meters :offset-assert 80) + (height meters :offset-assert 84) + (height-offset float 4 :offset-assert 88) + (real-ocean-offset meters :offset 88) + (ocean-offset meters :offset 92) + (bob-offset meters :offset 96) + (align-offset meters :offset 100) + (swim-depth meters :offset-assert 104) + (bob smush-control :inline :offset-assert 112) + (volume uint64 :offset-assert 144) + (bottom vector 2 :inline :offset-assert 160) + (top vector 2 :inline :offset-assert 192) + (enter-water-pos vector :inline :offset-assert 224) + (drip-old-pos vector :inline :offset-assert 240) + (drip-joint-index int32 :offset-assert 256) + (drip-wetness float :offset-assert 260) + (drip-time uint64 :offset-assert 264) + (drip-speed float :offset-assert 272) + (drip-height meters :offset-assert 276) + (drip-mult float :offset-assert 280) ) :method-count-assert 17 :size-assert #x11c @@ -86,10 +86,10 @@ ) (deftype water-vol (process-drawable) - ((water-height float :offset-assert 176) - (wade-height float :offset-assert 180) - (swim-height float :offset-assert 184) - (bottom-height float :offset-assert 188) + ((water-height meters :offset-assert 176) + (wade-height meters :offset-assert 180) + (swim-height meters :offset-assert 184) + (bottom-height meters :offset-assert 188) (attack-event basic :offset-assert 192) (target uint64 :offset-assert 200) (flags uint32 :offset-assert 208) diff --git a/goal_src/engine/level/level-h.gc b/goal_src/engine/level/level-h.gc index a110836c8f..b90367860a 100644 --- a/goal_src/engine/level/level-h.gc +++ b/goal_src/engine/level/level-h.gc @@ -65,7 +65,7 @@ (bsp-mask uint64 :offset-assert 80) ;; ?? (bsphere sphere :offset-assert 88) ;; boundings sphere of level? (buzzer int32 :offset-assert 92) ;; which task is the scout fly? - (bottom-height float :offset-assert 96) ;; meters + (bottom-height meters :offset-assert 96) (run-packages pair :offset-assert 100) ;; possibly unused? (prev-level basic :offset-assert 104) (next-level basic :offset-assert 108) @@ -118,7 +118,7 @@ (ambient entity-ambient-data-array :offset-assert 288) (closest-object float 9 :offset-assert 292) (upload-size int32 9 :offset-assert 328) - (level-distance float :offset-assert 364) ; meters + (level-distance meters :offset-assert 364) (inside-sphere? symbol :offset-assert 368) (inside-boxes? symbol :offset-assert 372) (display? symbol :offset-assert 376) diff --git a/goal_src/engine/level/level-info.gc b/goal_src/engine/level/level-info.gc index 8b391e3682..2fea2e14d0 100644 --- a/goal_src/engine/level/level-info.gc +++ b/goal_src/engine/level/level-info.gc @@ -107,7 +107,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x -5079040.0 :z 4055040.0 :w 1024000.0) :buzzer 95 - :bottom-height -466944.0 + :bottom-height (meters -114.0) :run-packages '("common" "villagep") :wait-for-load #f ) @@ -228,7 +228,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x -444416.0 :y 133120.0 :z 360448.0 :w 843776.0) :buzzer 75 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -273,7 +273,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x -819200.0 :z -1556480.0 :w 1474560.0) :buzzer 20 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -318,7 +318,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 1474560.0 :y 2519040.0 :z -983040.0 :w 2457600.0) :buzzer 7 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -361,7 +361,7 @@ :alt-load-commands '() :bsphere (new 'static 'sphere :x 1486848.0 :y -1269760.0 :z -1064960.0 :w 1228800.0) :buzzer 7 - :bottom-height -327680.0 + :bottom-height (meters -80.0) :run-packages '("common" "jungle") :wait-for-load #f ) @@ -527,7 +527,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :z 4096000.0 :w 1269760.0) :buzzer 28 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #f ) @@ -585,7 +585,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 419840.0 :y 151552.0 :z -3006464.0 :w 2048000.0) :buzzer 68 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -658,7 +658,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 1392640.0 :y 81920.0 :z -6770688.0 :w 696320.0) :buzzer 76 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -744,7 +744,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 2867200.0 :y -2048000.0 :z -6553600.0 :w 2048000.0) :buzzer 49 - :bottom-height -2048000.0 + :bottom-height (meters -500.0) :run-packages '("common") :wait-for-load #f ) @@ -802,7 +802,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 2867200.0 :y -2048000.0 :z -6553600.0 :w 2048000.0) :buzzer 49 - :bottom-height -2048000.0 + :bottom-height (meters -500.0) :run-packages '("common" "sunken") :wait-for-load #f ) @@ -979,7 +979,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 1986560.0 :z -8417280.0 :w 1003520.0) :buzzer 43 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -1024,7 +1024,7 @@ :bsphere (new 'static 'sphere :x -753664.0 :y 131072.0 :z -6569984.0 :w 974848.0) :buzzer 57 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -1096,7 +1096,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 2334720.0 :y 180224.0 :z -10653696.0 :w 3653632.0) :buzzer 88 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -1170,7 +1170,7 @@ :bsphere (new 'static 'sphere :x 4571136.0 :y 389120.0 :z -14323712.0 :w 409600.0) :buzzer 77 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #f ) @@ -1327,7 +1327,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 3072000.0 :y 1142784.0 :z -14028800.0 :w 1290240.0) :buzzer 65 - :bottom-height 524288.0 + :bottom-height (meters 128.0) :run-packages '("common") :wait-for-load #f ) @@ -1399,7 +1399,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 4517888.0 :y 114688.0 :z -12484608.0 :w 655360.0) :buzzer 85 - :bottom-height -245760.0 + :bottom-height (meters -60.0) :run-packages '("common") :wait-for-load #f ) @@ -1443,7 +1443,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 3620864.0 :y 266240.0 :z -11935744.0 :w 368640.0) :buzzer 85 - :bottom-height -245760.0 + :bottom-height (meters -60.0) :run-packages '("common" "maincave") :wait-for-load #t ) @@ -1502,7 +1502,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 5529600.0 :y 81920.0 :z -11468800.0 :w 512000.0) :buzzer 85 - :bottom-height -245760.0 + :bottom-height (meters -60.0) :run-packages '("common" "maincave") :wait-for-load #t ) @@ -1592,7 +1592,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 8806400.0 :y 131072.0 :z -15564800.0 :w 3174400.0) :buzzer 90 - :bottom-height -286720.0 + :bottom-height (meters -70.0) :run-packages '("common") :wait-for-load #t ) @@ -1773,7 +1773,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 11436032.0 :y -462848.0 :z -19750912.0 :w 1228800.0) :buzzer 91 - :bottom-height -466944.0 + :bottom-height (meters -114.0) :run-packages '("common") :wait-for-load #t ) @@ -1837,7 +1837,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 11837440.0 :y 2129920.0 :z -19578880.0 :w 778240.0) :buzzer 91 - :bottom-height -466944.0 + :bottom-height (meters -114.0) :run-packages '("common") :wait-for-load #f ) @@ -1865,7 +1865,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere) - :bottom-height -40960000000.0 + :bottom-height (meters -10000000.0) :run-packages '("common") :wait-for-load #f ) @@ -1909,7 +1909,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere) - :bottom-height -40960000000.0 + :bottom-height (meters -10000000.0) :run-packages '("common") :wait-for-load #f ) @@ -1953,7 +1953,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x -40960.0 :z 40960.0 :w 1126400.0) - :bottom-height -40960000000.0 + :bottom-height (meters -10000000.0) :run-packages '("common") :wait-for-load #f ) @@ -1996,7 +1996,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :w 167772160000.0) - :bottom-height -40960000000.0 + :bottom-height (meters -10000000.0) :run-packages '() :wait-for-load #t ) @@ -2024,7 +2024,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :w 167772160000.0) - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '() :wait-for-load #t ) diff --git a/goal_src/engine/math/transformq-h.gc b/goal_src/engine/math/transformq-h.gc index 4989383ae1..398c079dfb 100644 --- a/goal_src/engine/math/transformq-h.gc +++ b/goal_src/engine/math/transformq-h.gc @@ -28,14 +28,14 @@ ;; Representing a translate/rotate/scale with a quaternion and a velocity. ;; definition of type trsqv (deftype trsqv (trsq) - ((pause-adjust-distance float :offset 4) - (nav-radius float :offset 8) - (transv vector :inline :offset-assert 64) - (rotv vector :inline :offset-assert 80) - (scalev vector :inline :offset-assert 96) - (dir-targ quaternion :inline :offset-assert 112) - (angle-change-time uint64 :offset-assert 128) - (old-y-angle-diff float :offset-assert 136) + ((pause-adjust-distance meters :offset 4) + (nav-radius meters :offset 8) + (transv vector :inline :offset-assert 64) + (rotv vector :inline :offset-assert 80) + (scalev vector :inline :offset-assert 96) + (dir-targ quaternion :inline :offset-assert 112) + (angle-change-time uint64 :offset-assert 128) + (old-y-angle-diff float :offset-assert 136) ) :method-count-assert 28 :size-assert #x8c diff --git a/goal_src/engine/nav/navigate-h.gc b/goal_src/engine/nav/navigate-h.gc index 6861bb4f3b..48d1a2df07 100644 --- a/goal_src/engine/nav/navigate-h.gc +++ b/goal_src/engine/nav/navigate-h.gc @@ -40,17 +40,17 @@ ) (deftype nav-ray (structure) - ((current-pos vector :inline :offset-assert 0) - (dir vector :inline :offset-assert 16) - (dest-pos vector :inline :offset-assert 32) - (current-poly nav-poly :offset-assert 48) - (next-poly nav-poly :offset-assert 52) - (len float :offset-assert 56) - (last-edge int8 :offset-assert 60) - (terminated basic :offset-assert 64) - (reached-dest basic :offset-assert 68) - (hit-boundary basic :offset-assert 72) - (hit-gap basic :offset-assert 76) + ((current-pos vector :inline :offset-assert 0) + (dir vector :inline :offset-assert 16) + (dest-pos vector :inline :offset-assert 32) + (current-poly nav-poly :offset-assert 48) + (next-poly nav-poly :offset-assert 52) + (len meters :offset-assert 56) + (last-edge int8 :offset-assert 60) + (terminated basic :offset-assert 64) + (reached-dest basic :offset-assert 68) + (hit-boundary basic :offset-assert 72) + (hit-gap basic :offset-assert 76) ) :method-count-assert 9 :size-assert #x50 @@ -194,20 +194,20 @@ ) (deftype nav-control (basic) - ((flags nav-control-flags :offset-assert 4) - (process basic :offset-assert 8) - (shape collide-shape :offset-assert 12) - (mesh nav-mesh :offset-assert 16) - (gap-event basic :offset-assert 20) - (block-event basic :offset-assert 24) - (current-poly nav-poly :offset-assert 28) - (next-poly nav-poly :offset-assert 32) - (target-poly nav-poly :offset-assert 36) - (portal nav-route-portal 2 :offset-assert 40) - (nearest-y-threshold float :offset-assert 48) - (event-temp vector :inline :offset-assert 64) - (old-travel vector :inline :offset-assert 80) - (blocked-travel vector :inline :offset-assert 96) + ((flags nav-control-flags :offset-assert 4) + (process basic :offset-assert 8) + (shape collide-shape :offset-assert 12) + (mesh nav-mesh :offset-assert 16) + (gap-event basic :offset-assert 20) + (block-event basic :offset-assert 24) + (current-poly nav-poly :offset-assert 28) + (next-poly nav-poly :offset-assert 32) + (target-poly nav-poly :offset-assert 36) + (portal nav-route-portal 2 :offset-assert 40) + (nearest-y-threshold meters :offset-assert 48) + (event-temp vector :inline :offset-assert 64) + (old-travel vector :inline :offset-assert 80) + (blocked-travel vector :inline :offset-assert 96) (prev-pos vector :inline :offset-assert 112) (extra-nav-sphere vector :inline :offset-assert 128) (travel vector :inline :offset-assert 144) diff --git a/goal_src/engine/physics/dynamics-h.gc b/goal_src/engine/physics/dynamics-h.gc index 699c67f43c..d1568e63ca 100644 --- a/goal_src/engine/physics/dynamics-h.gc +++ b/goal_src/engine/physics/dynamics-h.gc @@ -6,13 +6,13 @@ ;; dgos: GAME, ENGINE (deftype dynamics (basic) - ((name basic :offset-assert 4) - (gravity-max float :offset-assert 8) ;; meters - (gravity-length float :offset-assert 12) ;; meters - (gravity vector :inline :offset-assert 16) - (gravity-normal vector :inline :offset-assert 32) - (walk-distance float :offset-assert 48) ;; meters - (run-distance float :offset-assert 52) ;; meters + ((name basic :offset-assert 4) + (gravity-max meters :offset-assert 8) + (gravity-length meters :offset-assert 12) + (gravity vector :inline :offset-assert 16) + (gravity-normal vector :inline :offset-assert 32) + (walk-distance meters :offset-assert 48) + (run-distance meters :offset-assert 52) ) :method-count-assert 9 :size-assert #x38 diff --git a/goal_src/engine/physics/trajectory-h.gc b/goal_src/engine/physics/trajectory-h.gc index bfa313d51b..566d3deef5 100644 --- a/goal_src/engine/physics/trajectory-h.gc +++ b/goal_src/engine/physics/trajectory-h.gc @@ -7,10 +7,10 @@ ;; definition of type trajectory (deftype trajectory (structure) - ((initial-position vector :inline :offset-assert 0) - (initial-velocity vector :inline :offset-assert 16) - (time float :offset-assert 32) - (gravity float :offset-assert 36) + ((initial-position vector :inline :offset-assert 0) + (initial-velocity vector :inline :offset-assert 16) + (time float :offset-assert 32) + (gravity meters :offset-assert 36) ) :method-count-assert 16 :size-assert #x28 diff --git a/goal_src/engine/sparticle/sparticle-launcher-h.gc b/goal_src/engine/sparticle/sparticle-launcher-h.gc index 834eb18272..9a322de7d9 100644 --- a/goal_src/engine/sparticle/sparticle-launcher-h.gc +++ b/goal_src/engine/sparticle/sparticle-launcher-h.gc @@ -36,15 +36,15 @@ ) (deftype sparticle-group-item (structure) - ((launcher uint32 :offset-assert 0) - (fade-after float :offset-assert 4) - (falloff-to float :offset-assert 8) - (flags uint16 :offset-assert 12) - (period uint16 :offset-assert 14) - (length uint16 :offset-assert 16) - (offset uint16 :offset-assert 18) - (hour-mask uint32 :offset-assert 20) - (binding uint32 :offset-assert 24) + ((launcher uint32 :offset-assert 0) + (fade-after meters :offset-assert 4) + (falloff-to meters :offset-assert 8) + (flags uint16 :offset-assert 12) + (period uint16 :offset-assert 14) + (length uint16 :offset-assert 16) + (offset uint16 :offset-assert 18) + (hour-mask uint32 :offset-assert 20) + (binding uint32 :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c diff --git a/goal_src/engine/target/joint-mod-h.gc b/goal_src/engine/target/joint-mod-h.gc index fd9f113d36..2a2f2c1bd1 100644 --- a/goal_src/engine/target/joint-mod-h.gc +++ b/goal_src/engine/target/joint-mod-h.gc @@ -32,25 +32,25 @@ ;; Although the mode is a bitfield, it appears that multiple kinds of mods cannot be ;; activated at the same time. (deftype joint-mod (basic) - ((mode joint-mod-handler-mode :offset-assert 4) - (process process-drawable :offset-assert 8) - (joint cspace :offset-assert 12) - (target vector :inline :offset-assert 16) - (twist vector :inline :offset-assert 32) - (twist-max vector :inline :offset-assert 48) - (trans vector :inline :offset-assert 64) - (quat quaternion :inline :offset-assert 80) - (scale vector :inline :offset-assert 96) - (notice-time uint64 :offset-assert 112) - (flex-blend float :offset-assert 120) - (blend float :offset-assert 124) - (max-dist float :offset-assert 128) - (ignore-angle float :offset-assert 132) - (up uint8 :offset-assert 136) - (nose uint8 :offset-assert 137) - (ear uint8 :offset-assert 138) - (shutting-down? basic :offset-assert 140) - (parented-scale? basic :offset 128) + ((mode joint-mod-handler-mode :offset-assert 4) + (process process-drawable :offset-assert 8) + (joint cspace :offset-assert 12) + (target vector :inline :offset-assert 16) + (twist vector :inline :offset-assert 32) + (twist-max vector :inline :offset-assert 48) + (trans vector :inline :offset-assert 64) + (quat quaternion :inline :offset-assert 80) + (scale vector :inline :offset-assert 96) + (notice-time uint64 :offset-assert 112) + (flex-blend float :offset-assert 120) + (blend float :offset-assert 124) + (max-dist meters :offset-assert 128) + (ignore-angle degrees :offset-assert 132) + (up uint8 :offset-assert 136) + (nose uint8 :offset-assert 137) + (ear uint8 :offset-assert 138) + (shutting-down? basic :offset-assert 140) + (parented-scale? basic :offset 128) ) :method-count-assert 16 :size-assert #x90 diff --git a/goal_src/levels/common/nav-enemy-h.gc b/goal_src/levels/common/nav-enemy-h.gc index acaaa6f39d..f597872312 100644 --- a/goal_src/levels/common/nav-enemy-h.gc +++ b/goal_src/levels/common/nav-enemy-h.gc @@ -7,57 +7,57 @@ ;; definition of type nav-enemy-info (deftype nav-enemy-info (basic) - ((idle-anim int32 :offset-assert 4) - (walk-anim int32 :offset-assert 8) - (turn-anim int32 :offset-assert 12) - (notice-anim int32 :offset-assert 16) - (run-anim int32 :offset-assert 20) - (jump-anim int32 :offset-assert 24) - (jump-land-anim int32 :offset-assert 28) - (victory-anim int32 :offset-assert 32) - (taunt-anim int32 :offset-assert 36) - (die-anim int32 :offset-assert 40) - (neck-joint int32 :offset-assert 44) - (player-look-at-joint int32 :offset-assert 48) - (run-travel-speed float :offset-assert 52) - (run-rotate-speed float :offset-assert 56) - (run-acceleration float :offset-assert 60) - (run-turn-time uint64 :offset-assert 64) - (walk-travel-speed float :offset-assert 72) - (walk-rotate-speed float :offset-assert 76) - (walk-acceleration float :offset-assert 80) - (walk-turn-time uint64 :offset-assert 88) - (attack-shove-back float :offset-assert 96) - (attack-shove-up float :offset-assert 100) - (shadow-size float :offset-assert 104) - (notice-nav-radius float :offset-assert 108) - (nav-nearest-y-threshold float :offset-assert 112) - (notice-distance float :offset-assert 116) - (proximity-notice-distance float :offset-assert 120) - (stop-chase-distance float :offset-assert 124) - (frustration-distance float :offset-assert 128) - (frustration-time uint64 :offset-assert 136) - (die-anim-hold-frame float :offset-assert 144) - (jump-anim-start-frame float :offset-assert 148) - (jump-land-anim-end-frame float :offset-assert 152) - (jump-height-min float :offset-assert 156) - (jump-height-factor float :offset-assert 160) - (jump-start-anim-speed float :offset-assert 164) - (shadow-max-y float :offset-assert 168) - (shadow-min-y float :offset-assert 172) - (shadow-locus-dist float :offset-assert 176) - (use-align basic :offset-assert 180) - (draw-shadow basic :offset-assert 184) - (move-to-ground basic :offset-assert 188) - (hover-if-no-ground basic :offset-assert 192) - (use-momentum basic :offset-assert 196) - (use-flee basic :offset-assert 200) - (use-proximity-notice basic :offset-assert 204) - (use-jump-blocked basic :offset-assert 208) - (use-jump-patrol basic :offset-assert 212) - (gnd-collide-with uint64 :offset-assert 216) - (debug-draw-neck basic :offset-assert 224) - (debug-draw-jump basic :offset-assert 228) + ((idle-anim int32 :offset-assert 4) + (walk-anim int32 :offset-assert 8) + (turn-anim int32 :offset-assert 12) + (notice-anim int32 :offset-assert 16) + (run-anim int32 :offset-assert 20) + (jump-anim int32 :offset-assert 24) + (jump-land-anim int32 :offset-assert 28) + (victory-anim int32 :offset-assert 32) + (taunt-anim int32 :offset-assert 36) + (die-anim int32 :offset-assert 40) + (neck-joint int32 :offset-assert 44) + (player-look-at-joint int32 :offset-assert 48) + (run-travel-speed meters :offset-assert 52) + (run-rotate-speed degrees :offset-assert 56) + (run-acceleration meters :offset-assert 60) + (run-turn-time seconds :offset-assert 64) + (walk-travel-speed meters :offset-assert 72) + (walk-rotate-speed degrees :offset-assert 76) + (walk-acceleration meters :offset-assert 80) + (walk-turn-time seconds :offset-assert 88) + (attack-shove-back meters :offset-assert 96) + (attack-shove-up meters :offset-assert 100) + (shadow-size meters :offset-assert 104) + (notice-nav-radius meters :offset-assert 108) + (nav-nearest-y-threshold meters :offset-assert 112) + (notice-distance meters :offset-assert 116) + (proximity-notice-distance meters :offset-assert 120) + (stop-chase-distance meters :offset-assert 124) + (frustration-distance meters :offset-assert 128) + (frustration-time uint64 :offset-assert 136) + (die-anim-hold-frame float :offset-assert 144) + (jump-anim-start-frame float :offset-assert 148) + (jump-land-anim-end-frame float :offset-assert 152) + (jump-height-min meters :offset-assert 156) + (jump-height-factor float :offset-assert 160) + (jump-start-anim-speed float :offset-assert 164) + (shadow-max-y meters :offset-assert 168) + (shadow-min-y meters :offset-assert 172) + (shadow-locus-dist meters :offset-assert 176) + (use-align basic :offset-assert 180) + (draw-shadow basic :offset-assert 184) + (move-to-ground basic :offset-assert 188) + (hover-if-no-ground basic :offset-assert 192) + (use-momentum basic :offset-assert 196) + (use-flee basic :offset-assert 200) + (use-proximity-notice basic :offset-assert 204) + (use-jump-blocked basic :offset-assert 208) + (use-jump-patrol basic :offset-assert 212) + (gnd-collide-with uint64 :offset-assert 216) + (debug-draw-neck basic :offset-assert 224) + (debug-draw-jump basic :offset-assert 228) ) :method-count-assert 9 :size-assert #xe8 diff --git a/goalc/compiler/compilation/Type.cpp b/goalc/compiler/compilation/Type.cpp index 58719ca3ec..b617eeb0ab 100644 --- a/goalc/compiler/compilation/Type.cpp +++ b/goalc/compiler/compilation/Type.cpp @@ -166,6 +166,10 @@ void Compiler::generate_field_description(const goos::Object& form, // Structure str_template += fmt::format("{}{}: #<{} @ #x~X>~%", tabs, f.name(), f.type().print()); format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); + } else if (f.type() == TypeSpec("seconds")) { + // seconds + str_template += fmt::format("{}{}: (seconds ~e)~%", tabs, f.name()); + format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); } else if (m_ts.tc(m_ts.make_typespec("integer"), f.type())) { // Integer if (m_ts.lookup_type(f.type())->get_load_size() > 8) { @@ -175,6 +179,14 @@ void Compiler::generate_field_description(const goos::Object& form, format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); } + } else if (f.type() == TypeSpec("meters")) { + // meters + str_template += fmt::format("{}{}: (meters ~m)~%", tabs, f.name()); + format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); + } else if (f.type() == TypeSpec("degrees")) { + // degrees + str_template += fmt::format("{}{}: (degrees ~r)~%", tabs, f.name()); + format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); } else if (m_ts.tc(m_ts.make_typespec("float"), f.type())) { // Float str_template += fmt::format("{}{}: ~f~%", tabs, f.name()); diff --git a/test/decompiler/reference/decompiler-macros.gc b/test/decompiler/reference/decompiler-macros.gc index b89a5bdbd0..ed281abd9f 100644 --- a/test/decompiler/reference/decompiler-macros.gc +++ b/test/decompiler/reference/decompiler-macros.gc @@ -127,3 +127,66 @@ ) ) ) + + +(defglobalconstant METER_LENGTH 4096.0) + +(defmacro meters (x) + "Convert number to meters. + If the input is a constant float or integer, the result will be a + compile time constant float. Otherwise, it will not be constant." + + ;; we don't have enough constant propagation for the compiler to figure this out. + (cond + ((float? x) + (* METER_LENGTH x) + ) + ((integer? x) + (* METER_LENGTH x) + ) + (#t + `(* METER_LENGTH ,x) + ) + ) + ) + +(defglobalconstant DEGREES_PER_ROT 65536.0) + +(defmacro degrees (x) + "Convert number to degrees unit. + Will keep a constant float/int constant." + (cond + ((or (float? x) (integer? x)) + (* DEGREES_PER_ROT (/ (+ 0.0 x) 360.0)) + ) + (#t + `(* (/ (the float ,x) 360.0) + DEGREES_PER_ROT + ) + ) + ) + ) + +(defglobalconstant TICKS_PER_SECOND 300) ;; 5 t/frame @ 60fps, 6 t/frame @ 50fps + +(defmacro seconds (x) + "Convert number to seconds unit." + (cond + ((float? x) + (* 1.0 TICKS_PER_SECOND x) + ) + ((integer? x) + (* TICKS_PER_SECOND x) + ) + (#t + `(* 1.0 TICKS_PER_SECOND ,x) + ) + ) + ) + +;; maybe rename to "velocity"? +(defmacro vel-tick (vel) + "turn a velocity value into a per-tick value" + `(* (/ 1.0 ,TICKS_PER_SECOND) ,vel) + ) + diff --git a/test/decompiler/reference/engine/anim/aligner-h_REF.gc b/test/decompiler/reference/engine/anim/aligner-h_REF.gc index a671ec63b3..adfa6b29ac 100644 --- a/test/decompiler/reference/engine/anim/aligner-h_REF.gc +++ b/test/decompiler/reference/engine/anim/aligner-h_REF.gc @@ -10,7 +10,7 @@ (matrix matrix 2 :inline :offset-assert 32) (transform transform 2 :inline :offset-assert 160) (delta transformq :inline :offset-assert 256) - (last-speed float :offset-assert 304) + (last-speed meters :offset-assert 304) (align transformq :inline :offset 160) ) :method-count-assert 14 @@ -65,7 +65,3 @@ obj ) ) - - - - diff --git a/test/decompiler/reference/engine/anim/joint-h_REF.gc b/test/decompiler/reference/engine/anim/joint-h_REF.gc index b758055996..a3c5b1456c 100644 --- a/test/decompiler/reference/engine/anim/joint-h_REF.gc +++ b/test/decompiler/reference/engine/anim/joint-h_REF.gc @@ -12,7 +12,7 @@ (param float 2 :offset-assert 24) (group-sub-index int16 :offset-assert 32) (group-size int16 :offset-assert 34) - (dist float :offset-assert 36) + (dist meters :offset-assert 36) (eval-time uint32 :offset-assert 40) (inspector-amount float :offset-assert 44) ) diff --git a/test/decompiler/reference/engine/camera/camera-h_REF.gc b/test/decompiler/reference/engine/camera/camera-h_REF.gc index 27f35ab5df..8420b4c816 100644 --- a/test/decompiler/reference/engine/camera/camera-h_REF.gc +++ b/test/decompiler/reference/engine/camera/camera-h_REF.gc @@ -3,16 +3,16 @@ ;; definition of type camera-bank (deftype camera-bank (basic) - ((collide-move-rad float :offset-assert 4) - (joypad uint32 :offset-assert 8) - (min-detectable-velocity float :offset-assert 12) - (attack-timeout uint64 :offset-assert 16) - (default-string-max-y float :offset-assert 24) - (default-string-min-y float :offset-assert 28) - (default-string-max-z float :offset-assert 32) - (default-string-min-z float :offset-assert 36) - (default-string-push-z float :offset-assert 40) - (default-tilt-adjust float :offset-assert 44) + ((collide-move-rad float :offset-assert 4) + (joypad uint32 :offset-assert 8) + (min-detectable-velocity float :offset-assert 12) + (attack-timeout uint64 :offset-assert 16) + (default-string-max-y meters :offset-assert 24) + (default-string-min-y meters :offset-assert 28) + (default-string-max-z meters :offset-assert 32) + (default-string-min-z meters :offset-assert 36) + (default-string-push-z meters :offset-assert 40) + (default-tilt-adjust degrees :offset-assert 44) ) :method-count-assert 9 :size-assert #x30 @@ -62,12 +62,12 @@ :collide-move-rad 1638.4 :min-detectable-velocity 40.96 :attack-timeout #x4b - :default-string-max-y 12288.0 - :default-string-min-y 4096.0 - :default-string-max-z 51200.0 - :default-string-min-z 20480.0 - :default-string-push-z 40960.0 - :default-tilt-adjust -1183.289 + :default-string-max-y (meters 3.0) + :default-string-min-y (meters 1.0) + :default-string-max-z (meters 12.5) + :default-string-min-z (meters 5.0) + :default-string-push-z (meters 10.0) + :default-tilt-adjust (degrees -6.5000005) ) ) diff --git a/test/decompiler/reference/engine/camera/math-camera-h_REF.gc b/test/decompiler/reference/engine/camera/math-camera-h_REF.gc index 51eeadfaec..942d3ca572 100644 --- a/test/decompiler/reference/engine/camera/math-camera-h_REF.gc +++ b/test/decompiler/reference/engine/camera/math-camera-h_REF.gc @@ -72,9 +72,9 @@ ;; definition of type math-camera (deftype math-camera (basic) - ((d float :offset-assert 4) - (f float :offset-assert 8) - (fov float :offset-assert 12) + ((d meters :offset-assert 4) + (f meters :offset-assert 8) + (fov degrees :offset-assert 12) (x-ratio float :offset-assert 16) (y-ratio float :offset-assert 20) (x-pix float :offset-assert 24) @@ -86,8 +86,8 @@ (y-clip-ratio-in float :offset-assert 48) (y-clip-ratio-over float :offset-assert 52) (cull-info cull-info :inline :offset-assert 56) - (fog-start float :offset-assert 120) - (fog-end float :offset-assert 124) + (fog-start meters :offset-assert 120) + (fog-end meters :offset-assert 124) (fog-max float :offset-assert 128) (fog-min float :offset-assert 132) (reset int32 :offset-assert 136) diff --git a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc index c185cf2d93..4f33a22fc8 100644 --- a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc @@ -234,7 +234,7 @@ (action uint32 :offset 40) (offense int8 :offset 44) (prim-type int8 :offset 45) - (radius float :offset 60) + (radius meters :offset 60) ) :method-count-assert 28 :size-assert #x48 @@ -490,7 +490,7 @@ (ground-poly-normal vector :inline :offset-assert 368) (ground-touch-point vector :inline :offset-assert 384) (shadow-pos vector :inline :offset-assert 400) - (ground-impact-vel float :offset-assert 416) + (ground-impact-vel meters :offset-assert 416) (surface-angle float :offset-assert 420) (poly-angle float :offset-assert 424) (touch-angle float :offset-assert 428) diff --git a/test/decompiler/reference/engine/data/art-h_REF.gc b/test/decompiler/reference/engine/data/art-h_REF.gc index dbdcc3b7a2..87141b9679 100644 --- a/test/decompiler/reference/engine/data/art-h_REF.gc +++ b/test/decompiler/reference/engine/data/art-h_REF.gc @@ -325,11 +325,11 @@ (jgeo int32 :offset-assert 8) (janim int32 :offset-assert 12) (bounds vector :inline :offset-assert 16) - (radius float :offset 28) + (radius meters :offset 28) (mgeo uint16 4 :offset-assert 32) (max-lod int32 :offset-assert 40) (lod-dist float 4 :offset-assert 44) - (longest-edge float :offset-assert 60) + (longest-edge meters :offset-assert 60) (texture-level int8 :offset-assert 64) (version int8 :offset-assert 65) (shadow int8 :offset-assert 66) @@ -363,7 +363,7 @@ ;; definition of type lod-group (deftype lod-group (structure) ((geo merc-ctrl :offset-assert 0) - (dist float :offset-assert 4) + (dist meters :offset-assert 4) ) :pack-me :method-count-assert 9 @@ -419,7 +419,7 @@ (cur-lod int8 :offset-assert 62) (desired-lod int8 :offset-assert 63) (ripple ripple-control :offset-assert 64) - (longest-edge float :offset-assert 68) + (longest-edge meters :offset-assert 68) (longest-edge? uint32 :offset 68) (light-index uint8 :offset-assert 72) (dummy uint8 2 :offset-assert 73) @@ -434,7 +434,7 @@ (shadow-ctrl shadow-control :offset-assert 96) (origin vector :inline :offset-assert 112) (bounds vector :inline :offset-assert 128) - (radius float :offset 140) + (radius meters :offset 140) (color-mult rgbaf :inline :offset-assert 144) (color-emissive rgbaf :inline :offset-assert 160) (secondary-interp float :offset-assert 176) diff --git a/test/decompiler/reference/engine/game/fact-h_REF.gc b/test/decompiler/reference/engine/game/fact-h_REF.gc index a9b980840f..60aedd49d0 100644 --- a/test/decompiler/reference/engine/game/fact-h_REF.gc +++ b/test/decompiler/reference/engine/game/fact-h_REF.gc @@ -3,21 +3,21 @@ ;; definition of type fact-bank (deftype fact-bank (basic) - ((eco-level-max float :offset-assert 4) - (eco-single-inc float :offset-assert 8) - (eco-full-inc float :offset-assert 12) - (eco-single-timeout uint64 :offset-assert 16) - (eco-full-timeout uint64 :offset-assert 24) - (dummy uint64 :offset-assert 32) - (health-max-default float :offset-assert 40) - (health-single-inc float :offset-assert 44) - (eco-pill-max-default float :offset-assert 48) - (health-small-inc float :offset-assert 52) - (buzzer-max-default float :offset-assert 56) - (buzzer-single-inc float :offset-assert 60) - (suck-bounce-dist float :offset-assert 64) - (suck-suck-dist float :offset-assert 68) - (default-pill-inc float :offset-assert 72) + ((eco-level-max float :offset-assert 4) + (eco-single-inc float :offset-assert 8) + (eco-full-inc float :offset-assert 12) + (eco-single-timeout seconds :offset-assert 16) + (eco-full-timeout seconds :offset-assert 24) + (dummy seconds :offset-assert 32) + (health-max-default float :offset-assert 40) + (health-single-inc float :offset-assert 44) + (eco-pill-max-default float :offset-assert 48) + (health-small-inc float :offset-assert 52) + (buzzer-max-default float :offset-assert 56) + (buzzer-single-inc float :offset-assert 60) + (suck-bounce-dist meters :offset-assert 64) + (suck-suck-dist meters :offset-assert 68) + (default-pill-inc float :offset-assert 72) ) :method-count-assert 9 :size-assert #x4c @@ -52,17 +52,17 @@ :eco-level-max 2.0 :eco-single-inc 1.0 :eco-full-inc 5.0 - :eco-single-timeout #x5dc - :eco-full-timeout #x1770 - :dummy #x1194 + :eco-single-timeout (seconds 5) + :eco-full-timeout (seconds 20) + :dummy (seconds 15) :health-max-default 3.0 :health-single-inc 1.0 :eco-pill-max-default 50.0 :health-small-inc 1.0 :buzzer-max-default 7.0 :buzzer-single-inc 1.0 - :suck-bounce-dist 73728.0 - :suck-suck-dist 30720.0 + :suck-bounce-dist (meters 18.0) + :suck-suck-dist (meters 7.5) ) ) @@ -139,23 +139,23 @@ ;; definition of type fact-info-target (deftype fact-info-target (fact-info) - ((eco-type int32 :offset-assert 40) - (eco-level float :offset-assert 44) - (eco-pickup-time uint64 :offset-assert 48) - (eco-timeout uint64 :offset-assert 56) - (health float :offset-assert 64) - (health-max float :offset-assert 68) - (buzzer float :offset-assert 72) - (buzzer-max float :offset-assert 76) - (eco-pill float :offset-assert 80) - (eco-pill-max float :offset-assert 84) - (health-pickup-time uint64 :offset-assert 88) - (eco-source uint64 :offset-assert 96) - (eco-source-time uint64 :offset-assert 104) - (money-pickup-time uint64 :offset-assert 112) - (buzzer-pickup-time uint64 :offset-assert 120) - (fuel-cell-pickup-time uint64 :offset-assert 128) - (eco-pill-pickup-time uint64 :offset-assert 136) + ((eco-type int32 :offset-assert 40) + (eco-level float :offset-assert 44) + (eco-pickup-time uint64 :offset-assert 48) + (eco-timeout seconds :offset-assert 56) + (health float :offset-assert 64) + (health-max float :offset-assert 68) + (buzzer float :offset-assert 72) + (buzzer-max float :offset-assert 76) + (eco-pill float :offset-assert 80) + (eco-pill-max float :offset-assert 84) + (health-pickup-time uint64 :offset-assert 88) + (eco-source uint64 :offset-assert 96) + (eco-source-time uint64 :offset-assert 104) + (money-pickup-time uint64 :offset-assert 112) + (buzzer-pickup-time uint64 :offset-assert 120) + (fuel-cell-pickup-time uint64 :offset-assert 128) + (eco-pill-pickup-time uint64 :offset-assert 136) ) :method-count-assert 12 :size-assert #x90 @@ -196,13 +196,13 @@ ;; definition of type fact-info-enemy (deftype fact-info-enemy (fact-info) - ((speed float :offset-assert 40) - (idle-distance float :offset-assert 44) - (notice-top float :offset-assert 48) - (notice-bottom float :offset-assert 52) - (cam-horz float :offset-assert 56) - (cam-vert float :offset-assert 60) - (cam-notice-dist float :offset-assert 64) + ((speed float :offset-assert 40) + (idle-distance meters :offset-assert 44) + (notice-top meters :offset-assert 48) + (notice-bottom meters :offset-assert 52) + (cam-horz meters :offset-assert 56) + (cam-vert meters :offset-assert 60) + (cam-notice-dist meters :offset-assert 64) ) :method-count-assert 12 :size-assert #x44 diff --git a/test/decompiler/reference/engine/game/game-h_REF.gc b/test/decompiler/reference/engine/game/game-h_REF.gc index bb2899a3c0..f781e48454 100644 --- a/test/decompiler/reference/engine/game/game-h_REF.gc +++ b/test/decompiler/reference/engine/game/game-h_REF.gc @@ -120,21 +120,21 @@ ;; definition of type attack-info (deftype attack-info (structure) - ((trans vector :inline :offset-assert 0) - (vector vector :inline :offset-assert 16) - (intersection vector :inline :offset-assert 32) - (attacker uint64 :offset-assert 48) - (invinc-time uint64 :offset-assert 56) - (mask uint32 :offset-assert 64) - (mode basic :offset-assert 68) - (shove-back float :offset-assert 72) - (shove-up float :offset-assert 76) - (speed float :offset-assert 80) - (dist float :offset-assert 84) - (control float :offset-assert 88) - (angle basic :offset-assert 92) - (rotate-to float :offset-assert 96) - (prev-state basic :offset-assert 100) + ((trans vector :inline :offset-assert 0) + (vector vector :inline :offset-assert 16) + (intersection vector :inline :offset-assert 32) + (attacker uint64 :offset-assert 48) + (invinc-time uint64 :offset-assert 56) + (mask uint32 :offset-assert 64) + (mode basic :offset-assert 68) + (shove-back meters :offset-assert 72) + (shove-up meters :offset-assert 76) + (speed meters :offset-assert 80) + (dist meters :offset-assert 84) + (control float :offset-assert 88) + (angle basic :offset-assert 92) + (rotate-to degrees :offset-assert 96) + (prev-state basic :offset-assert 100) ) :method-count-assert 10 :size-assert #x68 diff --git a/test/decompiler/reference/engine/game/generic-obs-h_REF.gc b/test/decompiler/reference/engine/game/generic-obs-h_REF.gc index f78e3d5a96..759737c39c 100644 --- a/test/decompiler/reference/engine/game/generic-obs-h_REF.gc +++ b/test/decompiler/reference/engine/game/generic-obs-h_REF.gc @@ -52,7 +52,7 @@ (deftype part-spawner (process-drawable) ((mode uint32 :offset-assert 176) (enable basic :offset-assert 180) - (radius float :offset-assert 184) + (radius meters :offset-assert 184) (world-sphere sphere :inline :offset-assert 192) ) :heap-base #x60 @@ -211,8 +211,8 @@ (deftype swingpole (process) ((root basic :offset-assert 112) (dir vector :inline :offset-assert 128) - (range float :offset-assert 144) - (edge-length float :offset-assert 148) + (range meters :offset-assert 144) + (edge-length meters :offset-assert 148) ) :heap-base #x30 :method-count-assert 14 diff --git a/test/decompiler/reference/engine/gfx/mood-h_REF.gc b/test/decompiler/reference/engine/gfx/mood-h_REF.gc index e7224fb136..79605a47be 100644 --- a/test/decompiler/reference/engine/gfx/mood-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/mood-h_REF.gc @@ -5,8 +5,8 @@ (deftype mood-fog (structure) ((fog-color vector :inline :offset-assert 0) (fog-dists vector :inline :offset-assert 16) - (fog-start float :offset 16) - (fog-end float :offset 20) + (fog-start meters :offset 16) + (fog-end meters :offset 20) (fog-max float :offset 24) (fog-min float :offset 28) (erase-color vector :inline :offset-assert 32) diff --git a/test/decompiler/reference/engine/gfx/sparticle/sparticle-launcher-h_REF.gc b/test/decompiler/reference/engine/gfx/sparticle/sparticle-launcher-h_REF.gc index f7c4f23cf6..75390ea833 100644 --- a/test/decompiler/reference/engine/gfx/sparticle/sparticle-launcher-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/sparticle/sparticle-launcher-h_REF.gc @@ -64,8 +64,8 @@ ;; definition of type sparticle-group-item (deftype sparticle-group-item (structure) ((launcher uint32 :offset-assert 0) - (fade-after float :offset-assert 4) - (falloff-to float :offset-assert 8) + (fade-after meters :offset-assert 4) + (falloff-to meters :offset-assert 8) (flags uint16 :offset-assert 12) (period uint16 :offset-assert 14) (length uint16 :offset-assert 16) diff --git a/test/decompiler/reference/engine/gfx/tie/prototype-h_REF.gc b/test/decompiler/reference/engine/gfx/tie/prototype-h_REF.gc index 89554ea127..a4689345dd 100644 --- a/test/decompiler/reference/engine/gfx/tie/prototype-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/tie/prototype-h_REF.gc @@ -12,10 +12,10 @@ (rdists vector :inline :offset-assert 48) (next uint32 4 :offset-assert 64) (count uint16 4 :offset-assert 80) - (near-plane float :offset 32) - (near-stiff float :offset 36) - (mid-plane float :offset 40) - (far-plane float :offset 44) + (near-plane meters :offset 32) + (near-stiff meters :offset 36) + (mid-plane meters :offset 40) + (far-plane meters :offset 44) (rlength-near float :offset 48) (rlength-stiff float :offset 52) (rlength-mid float :offset 56) diff --git a/test/decompiler/reference/engine/gfx/water/water-h_REF.gc b/test/decompiler/reference/engine/gfx/water/water-h_REF.gc index 8f09db4d35..97f7f3a6a7 100644 --- a/test/decompiler/reference/engine/gfx/water/water-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/water/water-h_REF.gc @@ -7,24 +7,24 @@ (process process :offset-assert 8) (joint-index int32 :offset-assert 12) (top-y-offset float :offset-assert 16) - (ripple-size float :offset-assert 20) + (ripple-size meters :offset-assert 20) (enter-water-time uint64 :offset-assert 24) (wade-time uint64 :offset-assert 32) (on-water-time uint64 :offset-assert 40) (enter-swim-time uint64 :offset-assert 48) (swim-time uint64 :offset-assert 56) - (base-height float :offset-assert 64) - (wade-height float :offset-assert 68) - (swim-height float :offset-assert 72) - (surface-height float :offset-assert 76) - (bottom-height float :offset-assert 80) - (height float :offset-assert 84) + (base-height meters :offset-assert 64) + (wade-height meters :offset-assert 68) + (swim-height meters :offset-assert 72) + (surface-height meters :offset-assert 76) + (bottom-height meters :offset-assert 80) + (height meters :offset-assert 84) (height-offset float 4 :offset-assert 88) - (real-ocean-offset float :offset 88) - (ocean-offset float :offset 92) - (bob-offset float :offset 96) - (align-offset float :offset 100) - (swim-depth float :offset-assert 104) + (real-ocean-offset meters :offset 88) + (ocean-offset meters :offset 92) + (bob-offset meters :offset 96) + (align-offset meters :offset 100) + (swim-depth meters :offset-assert 104) (bob smush-control :inline :offset-assert 112) (volume uint64 :offset-assert 144) (bottom vector 2 :inline :offset-assert 160) @@ -35,7 +35,7 @@ (drip-wetness float :offset-assert 260) (drip-time uint64 :offset-assert 264) (drip-speed float :offset-assert 272) - (drip-height float :offset-assert 276) + (drip-height meters :offset-assert 276) (drip-mult float :offset-assert 280) ) :method-count-assert 17 @@ -136,10 +136,10 @@ ;; definition of type water-vol (deftype water-vol (process-drawable) - ((water-height float :offset-assert 176) - (wade-height float :offset-assert 180) - (swim-height float :offset-assert 184) - (bottom-height float :offset-assert 188) + ((water-height meters :offset-assert 176) + (wade-height meters :offset-assert 180) + (swim-height meters :offset-assert 184) + (bottom-height meters :offset-assert 188) (attack-event basic :offset-assert 192) (target uint64 :offset-assert 200) (flags uint32 :offset-assert 208) diff --git a/test/decompiler/reference/engine/level/level-h_REF.gc b/test/decompiler/reference/engine/level/level-h_REF.gc index 61baaa0716..085f81e682 100644 --- a/test/decompiler/reference/engine/level/level-h_REF.gc +++ b/test/decompiler/reference/engine/level/level-h_REF.gc @@ -71,7 +71,7 @@ (bsp-mask uint64 :offset-assert 80) (bsphere sphere :offset-assert 88) (buzzer int32 :offset-assert 92) - (bottom-height float :offset-assert 96) + (bottom-height meters :offset-assert 96) (run-packages pair :offset-assert 100) (prev-level basic :offset-assert 104) (next-level basic :offset-assert 108) @@ -158,7 +158,7 @@ (ambient entity-ambient-data-array :offset-assert 288) (closest-object float 9 :offset-assert 292) (upload-size int32 9 :offset-assert 328) - (level-distance float :offset-assert 364) + (level-distance meters :offset-assert 364) (inside-sphere? symbol :offset-assert 368) (inside-boxes? symbol :offset-assert 372) (display? symbol :offset-assert 376) diff --git a/test/decompiler/reference/engine/level/level-info_REF.gc b/test/decompiler/reference/engine/level/level-info_REF.gc index cb56870a2d..815fcf2234 100644 --- a/test/decompiler/reference/engine/level/level-info_REF.gc +++ b/test/decompiler/reference/engine/level/level-info_REF.gc @@ -223,7 +223,7 @@ :bsphere (new 'static 'sphere :x -5079040.0 :z 4055040.0 :w 1024000.0) :buzzer 95 - :bottom-height -466944.0 + :bottom-height (meters -114.0) :run-packages '("common" "villagep") :wait-for-load #f ) @@ -453,7 +453,7 @@ :bsphere (new 'static 'sphere :x -444416.0 :y 133120.0 :z 360448.0 :w 843776.0) :buzzer 75 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -518,7 +518,7 @@ :bsphere (new 'static 'sphere :x -819200.0 :z -1556480.0 :w 1474560.0) :buzzer 20 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -586,7 +586,7 @@ :bsphere (new 'static 'sphere :x 1474560.0 :y 2519040.0 :z -983040.0 :w 2457600.0) :buzzer 7 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -646,7 +646,7 @@ :bsphere (new 'static 'sphere :x 1486848.0 :y -1269760.0 :z -1064960.0 :w 1228800.0) :buzzer 7 - :bottom-height -327680.0 + :bottom-height (meters -80.0) :run-packages '("common" "jungle") :wait-for-load #f ) @@ -1038,7 +1038,7 @@ :bsphere (new 'static 'sphere :z 4096000.0 :w 1269760.0) :buzzer 28 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #f ) @@ -1130,7 +1130,7 @@ :bsphere (new 'static 'sphere :x 419840.0 :y 151552.0 :z -3006464.0 :w 2048000.0) :buzzer 68 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -1251,7 +1251,7 @@ :bsphere (new 'static 'sphere :x 1392640.0 :y 81920.0 :z -6770688.0 :w 696320.0) :buzzer 76 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -1396,7 +1396,7 @@ :bsphere (new 'static 'sphere :x 2867200.0 :y -2048000.0 :z -6553600.0 :w 2048000.0) :buzzer 49 - :bottom-height -2048000.0 + :bottom-height (meters -500.0) :run-packages '("common") :wait-for-load #f ) @@ -1485,7 +1485,7 @@ :bsphere (new 'static 'sphere :x 2867200.0 :y -2048000.0 :z -6553600.0 :w 2048000.0) :buzzer 49 - :bottom-height -2048000.0 + :bottom-height (meters -500.0) :run-packages '("common" "sunken") :wait-for-load #f ) @@ -1850,7 +1850,7 @@ :bsphere (new 'static 'sphere :x 1986560.0 :z -8417280.0 :w 1003520.0) :buzzer 43 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -1914,7 +1914,7 @@ :bsphere (new 'static 'sphere :x -753664.0 :y 131072.0 :z -6569984.0 :w 974848.0) :buzzer 57 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -2034,7 +2034,7 @@ :bsphere (new 'static 'sphere :x 2334720.0 :y 180224.0 :z -10653696.0 :w 3653632.0) :buzzer 88 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -2155,7 +2155,7 @@ :bsphere (new 'static 'sphere :x 4571136.0 :y 389120.0 :z -14323712.0 :w 409600.0) :buzzer 77 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #f ) @@ -2444,7 +2444,7 @@ :bsphere (new 'static 'sphere :x 3072000.0 :y 1142784.0 :z -14028800.0 :w 1290240.0) :buzzer 65 - :bottom-height 524288.0 + :bottom-height (meters 128.0) :run-packages '("common") :wait-for-load #f ) @@ -2564,7 +2564,7 @@ :bsphere (new 'static 'sphere :x 4517888.0 :y 114688.0 :z -12484608.0 :w 655360.0) :buzzer 85 - :bottom-height -245760.0 + :bottom-height (meters -60.0) :run-packages '("common") :wait-for-load #f ) @@ -2625,7 +2625,7 @@ :bsphere (new 'static 'sphere :x 3620864.0 :y 266240.0 :z -11935744.0 :w 368640.0) :buzzer 85 - :bottom-height -245760.0 + :bottom-height (meters -60.0) :run-packages '("common" "maincave") :wait-for-load #t ) @@ -2714,7 +2714,7 @@ :bsphere (new 'static 'sphere :x 5529600.0 :y 81920.0 :z -11468800.0 :w 512000.0) :buzzer 85 - :bottom-height -245760.0 + :bottom-height (meters -60.0) :run-packages '("common" "maincave") :wait-for-load #t ) @@ -2862,7 +2862,7 @@ :bsphere (new 'static 'sphere :x 8806400.0 :y 131072.0 :z -15564800.0 :w 3174400.0) :buzzer 90 - :bottom-height -286720.0 + :bottom-height (meters -70.0) :run-packages '("common") :wait-for-load #t ) @@ -3179,7 +3179,7 @@ :bsphere (new 'static 'sphere :x 11436032.0 :y -462848.0 :z -19750912.0 :w 1228800.0) :buzzer 91 - :bottom-height -466944.0 + :bottom-height (meters -114.0) :run-packages '("common") :wait-for-load #t ) @@ -3275,7 +3275,7 @@ :bsphere (new 'static 'sphere :x 11837440.0 :y 2129920.0 :z -19578880.0 :w 778240.0) :buzzer 91 - :bottom-height -466944.0 + :bottom-height (meters -114.0) :run-packages '("common") :wait-for-load #f ) @@ -3304,7 +3304,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere) - :bottom-height -40960000000.0 + :bottom-height (meters -10000000.0) :run-packages '("common") :wait-for-load #f ) @@ -3363,7 +3363,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere) - :bottom-height -40960000000.0 + :bottom-height (meters -10000000.0) :run-packages '("common") :wait-for-load #f ) @@ -3424,7 +3424,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x -40960.0 :z 40960.0 :w 1126400.0) - :bottom-height -40960000000.0 + :bottom-height (meters -10000000.0) :run-packages '("common") :wait-for-load #f ) @@ -3484,7 +3484,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :w 167772160000.0) - :bottom-height -40960000000.0 + :bottom-height (meters -10000000.0) :run-packages '() :wait-for-load #t ) @@ -3513,7 +3513,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :w 167772160000.0) - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '() :wait-for-load #t ) diff --git a/test/decompiler/reference/engine/math/transformq-h_REF.gc b/test/decompiler/reference/engine/math/transformq-h_REF.gc index ccbc5baf85..626d193b02 100644 --- a/test/decompiler/reference/engine/math/transformq-h_REF.gc +++ b/test/decompiler/reference/engine/math/transformq-h_REF.gc @@ -41,8 +41,8 @@ ;; definition of type trsqv (deftype trsqv (trsq) - ((pause-adjust-distance float :offset 4) - (nav-radius float :offset 8) + ((pause-adjust-distance meters :offset 4) + (nav-radius meters :offset 8) (transv vector :inline :offset-assert 64) (rotv vector :inline :offset-assert 80) (scalev vector :inline :offset-assert 96) diff --git a/test/decompiler/reference/engine/nav/navigate-h_REF.gc b/test/decompiler/reference/engine/nav/navigate-h_REF.gc index 7b30793a36..6a2109816f 100644 --- a/test/decompiler/reference/engine/nav/navigate-h_REF.gc +++ b/test/decompiler/reference/engine/nav/navigate-h_REF.gc @@ -67,7 +67,7 @@ (dest-pos vector :inline :offset-assert 32) (current-poly nav-poly :offset-assert 48) (next-poly nav-poly :offset-assert 52) - (len float :offset-assert 56) + (len meters :offset-assert 56) (last-edge int8 :offset-assert 60) (terminated basic :offset-assert 64) (reached-dest basic :offset-assert 68) @@ -357,7 +357,7 @@ (next-poly nav-poly :offset-assert 32) (target-poly nav-poly :offset-assert 36) (portal nav-route-portal 2 :offset-assert 40) - (nearest-y-threshold float :offset-assert 48) + (nearest-y-threshold meters :offset-assert 48) (event-temp vector :inline :offset-assert 64) (old-travel vector :inline :offset-assert 80) (blocked-travel vector :inline :offset-assert 96) diff --git a/test/decompiler/reference/engine/physics/dynamics-h_REF.gc b/test/decompiler/reference/engine/physics/dynamics-h_REF.gc index c9162fb4ee..c26466c033 100644 --- a/test/decompiler/reference/engine/physics/dynamics-h_REF.gc +++ b/test/decompiler/reference/engine/physics/dynamics-h_REF.gc @@ -4,12 +4,12 @@ ;; definition of type dynamics (deftype dynamics (basic) ((name basic :offset-assert 4) - (gravity-max float :offset-assert 8) - (gravity-length float :offset-assert 12) + (gravity-max meters :offset-assert 8) + (gravity-length meters :offset-assert 12) (gravity vector :inline :offset-assert 16) (gravity-normal vector :inline :offset-assert 32) - (walk-distance float :offset-assert 48) - (run-distance float :offset-assert 52) + (walk-distance meters :offset-assert 48) + (run-distance meters :offset-assert 52) ) :method-count-assert 9 :size-assert #x38 @@ -53,13 +53,13 @@ *standard-dynamics* (new 'static 'dynamics :name 'standard - :gravity-max 163840.0 - :gravity-length 245760.0 + :gravity-max (meters 40.0) + :gravity-length (meters 60.0) :gravity (new 'static 'vector :y 245760.0 :w 1.0) :gravity-normal (new 'static 'vector :y 1.0 :w 1.0) - :walk-distance 8192.0 - :run-distance 20480.0 + :walk-distance (meters 2.0) + :run-distance (meters 5.0) ) ) diff --git a/test/decompiler/reference/engine/physics/trajectory-h_REF.gc b/test/decompiler/reference/engine/physics/trajectory-h_REF.gc index 4378093ade..ed1044dc54 100644 --- a/test/decompiler/reference/engine/physics/trajectory-h_REF.gc +++ b/test/decompiler/reference/engine/physics/trajectory-h_REF.gc @@ -6,7 +6,7 @@ ((initial-position vector :inline :offset-assert 0) (initial-velocity vector :inline :offset-assert 16) (time float :offset-assert 32) - (gravity float :offset-assert 36) + (gravity meters :offset-assert 36) ) :method-count-assert 16 :size-assert #x28 diff --git a/test/decompiler/reference/engine/target/joint-mod-h_REF.gc b/test/decompiler/reference/engine/target/joint-mod-h_REF.gc index b89f9128c5..c2353db5ad 100644 --- a/test/decompiler/reference/engine/target/joint-mod-h_REF.gc +++ b/test/decompiler/reference/engine/target/joint-mod-h_REF.gc @@ -15,8 +15,8 @@ (notice-time uint64 :offset-assert 112) (flex-blend float :offset-assert 120) (blend float :offset-assert 124) - (max-dist float :offset-assert 128) - (ignore-angle float :offset-assert 132) + (max-dist meters :offset-assert 128) + (ignore-angle degrees :offset-assert 132) (up uint8 :offset-assert 136) (nose uint8 :offset-assert 137) (ear uint8 :offset-assert 138) @@ -156,7 +156,7 @@ (set! (-> v1-2 z) 1.0) (set! (-> v1-2 w) 1.0) ) - (set! (-> obj max-dist) (the-as float #f)) + (set! (-> obj max-dist) (the-as meters #f)) ) (((joint-mod-handler-mode joint-set*)) (set! (-> joint param0) joint-mod-joint-set*-handler) @@ -170,7 +170,7 @@ (set! (-> v1-4 z) 1.0) (set! (-> v1-4 w) 1.0) ) - (set! (-> obj max-dist) (the-as float #f)) + (set! (-> obj max-dist) (the-as meters #f)) ) ) ) diff --git a/test/decompiler/reference/levels/common/nav-enemy-h_REF.gc b/test/decompiler/reference/levels/common/nav-enemy-h_REF.gc index 14fa435de8..a41db3e67a 100644 --- a/test/decompiler/reference/levels/common/nav-enemy-h_REF.gc +++ b/test/decompiler/reference/levels/common/nav-enemy-h_REF.gc @@ -3,57 +3,57 @@ ;; definition of type nav-enemy-info (deftype nav-enemy-info (basic) - ((idle-anim int32 :offset-assert 4) - (walk-anim int32 :offset-assert 8) - (turn-anim int32 :offset-assert 12) - (notice-anim int32 :offset-assert 16) - (run-anim int32 :offset-assert 20) - (jump-anim int32 :offset-assert 24) - (jump-land-anim int32 :offset-assert 28) - (victory-anim int32 :offset-assert 32) - (taunt-anim int32 :offset-assert 36) - (die-anim int32 :offset-assert 40) - (neck-joint int32 :offset-assert 44) - (player-look-at-joint int32 :offset-assert 48) - (run-travel-speed float :offset-assert 52) - (run-rotate-speed float :offset-assert 56) - (run-acceleration float :offset-assert 60) - (run-turn-time uint64 :offset-assert 64) - (walk-travel-speed float :offset-assert 72) - (walk-rotate-speed float :offset-assert 76) - (walk-acceleration float :offset-assert 80) - (walk-turn-time uint64 :offset-assert 88) - (attack-shove-back float :offset-assert 96) - (attack-shove-up float :offset-assert 100) - (shadow-size float :offset-assert 104) - (notice-nav-radius float :offset-assert 108) - (nav-nearest-y-threshold float :offset-assert 112) - (notice-distance float :offset-assert 116) - (proximity-notice-distance float :offset-assert 120) - (stop-chase-distance float :offset-assert 124) - (frustration-distance float :offset-assert 128) - (frustration-time uint64 :offset-assert 136) - (die-anim-hold-frame float :offset-assert 144) - (jump-anim-start-frame float :offset-assert 148) - (jump-land-anim-end-frame float :offset-assert 152) - (jump-height-min float :offset-assert 156) - (jump-height-factor float :offset-assert 160) - (jump-start-anim-speed float :offset-assert 164) - (shadow-max-y float :offset-assert 168) - (shadow-min-y float :offset-assert 172) - (shadow-locus-dist float :offset-assert 176) - (use-align basic :offset-assert 180) - (draw-shadow basic :offset-assert 184) - (move-to-ground basic :offset-assert 188) - (hover-if-no-ground basic :offset-assert 192) - (use-momentum basic :offset-assert 196) - (use-flee basic :offset-assert 200) - (use-proximity-notice basic :offset-assert 204) - (use-jump-blocked basic :offset-assert 208) - (use-jump-patrol basic :offset-assert 212) - (gnd-collide-with uint64 :offset-assert 216) - (debug-draw-neck basic :offset-assert 224) - (debug-draw-jump basic :offset-assert 228) + ((idle-anim int32 :offset-assert 4) + (walk-anim int32 :offset-assert 8) + (turn-anim int32 :offset-assert 12) + (notice-anim int32 :offset-assert 16) + (run-anim int32 :offset-assert 20) + (jump-anim int32 :offset-assert 24) + (jump-land-anim int32 :offset-assert 28) + (victory-anim int32 :offset-assert 32) + (taunt-anim int32 :offset-assert 36) + (die-anim int32 :offset-assert 40) + (neck-joint int32 :offset-assert 44) + (player-look-at-joint int32 :offset-assert 48) + (run-travel-speed meters :offset-assert 52) + (run-rotate-speed degrees :offset-assert 56) + (run-acceleration meters :offset-assert 60) + (run-turn-time seconds :offset-assert 64) + (walk-travel-speed meters :offset-assert 72) + (walk-rotate-speed degrees :offset-assert 76) + (walk-acceleration meters :offset-assert 80) + (walk-turn-time seconds :offset-assert 88) + (attack-shove-back meters :offset-assert 96) + (attack-shove-up meters :offset-assert 100) + (shadow-size meters :offset-assert 104) + (notice-nav-radius meters :offset-assert 108) + (nav-nearest-y-threshold meters :offset-assert 112) + (notice-distance meters :offset-assert 116) + (proximity-notice-distance meters :offset-assert 120) + (stop-chase-distance meters :offset-assert 124) + (frustration-distance meters :offset-assert 128) + (frustration-time uint64 :offset-assert 136) + (die-anim-hold-frame float :offset-assert 144) + (jump-anim-start-frame float :offset-assert 148) + (jump-land-anim-end-frame float :offset-assert 152) + (jump-height-min meters :offset-assert 156) + (jump-height-factor float :offset-assert 160) + (jump-start-anim-speed float :offset-assert 164) + (shadow-max-y meters :offset-assert 168) + (shadow-min-y meters :offset-assert 172) + (shadow-locus-dist meters :offset-assert 176) + (use-align basic :offset-assert 180) + (draw-shadow basic :offset-assert 184) + (move-to-ground basic :offset-assert 188) + (hover-if-no-ground basic :offset-assert 192) + (use-momentum basic :offset-assert 196) + (use-flee basic :offset-assert 200) + (use-proximity-notice basic :offset-assert 204) + (use-jump-blocked basic :offset-assert 208) + (use-jump-patrol basic :offset-assert 212) + (gnd-collide-with uint64 :offset-assert 216) + (debug-draw-neck basic :offset-assert 224) + (debug-draw-jump basic :offset-assert 228) ) :method-count-assert 9 :size-assert #xe8 From f6d5952498e4d1327555b682a98b096f1643a89a Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Sun, 11 Jul 2021 21:59:27 -0400 Subject: [PATCH 06/57] [decompiler] handle nested conditionals and `goto`s better (#693) * diff check * try that again * more small fixes --- decompiler/IR2/Form.cpp | 10 +- decompiler/IR2/FormExpressionAnalysis.cpp | 25 +- docs/markdown/progress-notes/changelog.md | 4 +- goal_src/engine/anim/aligner.gc | 8 +- goal_src/engine/data/res.gc | 2 - goal_src/engine/debug/menu.gc | 258 ++++--- goal_src/engine/dma/dma-disasm.gc | 3 + goal_src/engine/geometry/geometry.gc | 85 ++- goal_src/engine/gfx/hw/gs.gc | 58 +- goal_src/engine/gfx/mood-h.gc | 99 +-- goal_src/engine/gfx/texture.gc | 244 +++--- goal_src/kernel/gcommon.gc | 347 ++++----- goalc/compiler/compilation/Static.cpp | 33 +- .../reference/engine/anim/aligner_REF.gc | 12 +- .../reference/engine/debug/menu_REF.gc | 316 ++++---- .../reference/engine/dma/dma-disasm_REF.gc | 289 ++++--- .../reference/engine/game/fact-h_REF.gc | 18 +- .../reference/engine/geometry/geometry_REF.gc | 173 ++--- .../reference/engine/geometry/vol-h_REF.gc | 18 +- .../reference/engine/gfx/hw/gs_REF.gc | 38 +- .../reference/engine/gfx/texture_REF.gc | 368 ++++----- .../reference/engine/math/trigonometry_REF.gc | 70 +- .../reference/engine/nav/navigate-h_REF.gc | 18 +- .../reference/engine/nav/path-h_REF.gc | 18 +- .../reference/engine/nav/path_REF.gc | 20 +- .../reference/engine/target/surface-h_REF.gc | 30 +- .../reference/kernel/gcommon_REF.gc | 594 +++++++-------- .../reference/kernel/gkernel_REF.gc | 22 +- .../reference/kernel/gstring_REF.gc | 35 +- .../test_FormExpressionBuildLong.cpp | 708 +++++++++--------- test/decompiler/test_gkernel_decomp.cpp | 14 +- 31 files changed, 1896 insertions(+), 2041 deletions(-) diff --git a/decompiler/IR2/Form.cpp b/decompiler/IR2/Form.cpp index f5553c80a3..df47048ee9 100644 --- a/decompiler/IR2/Form.cpp +++ b/decompiler/IR2/Form.cpp @@ -939,9 +939,13 @@ goos::Object BreakElement::to_form_internal(const Env& env) const { forms.push_back(pretty_print::build_list(return_code->to_form(env))); forms.push_back(pretty_print::build_list(dead_code->to_form(env))); } else { - forms.push_back(pretty_print::to_symbol("begin")); - return_code->inline_forms(forms, env); - forms.push_back(pretty_print::build_list(fmt::format("goto cfg-{}", lid))); + if (return_code->try_as_element()) { + return pretty_print::build_list(fmt::format("goto cfg-{}", lid)); + } else { + forms.push_back(pretty_print::to_symbol("begin")); + return_code->inline_forms(forms, env); + forms.push_back(pretty_print::build_list(fmt::format("goto cfg-{}", lid))); + } } return pretty_print::build_list(forms); } diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index a8df31fc8e..658ba88ac0 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -2804,6 +2804,18 @@ void CondWithElseElement::push_to_stack(const Env& env, FormPool& pool, FormStac } } + // merge conds in the else block. + auto else_as_another_cond = else_ir->try_as_element(); + if (else_as_another_cond) { + while (else_as_another_cond) { + for (auto& e : else_as_another_cond->entries) { + entries.push_back(e); + } + else_ir = else_as_another_cond->else_ir; + else_as_another_cond = else_ir->try_as_element(); + } + } + if (rewrite_as_set) { if (set_unused) { stack.push_form_element(this, true); @@ -4492,17 +4504,22 @@ void LabelElement::push_to_stack(const Env&, FormPool&, FormStack& stack) { void BreakElement::push_to_stack(const Env& env, FormPool& pool, FormStack& stack) { mark_popped(); - FormStack temp_stack(false); for (auto& elt : return_code->elts()) { elt->push_to_stack(env, pool, temp_stack); } - auto new_entries = temp_stack.rewrite(pool, env); + std::vector new_entries; + new_entries = temp_stack.rewrite(pool, env); + + assert(!new_entries.empty()); return_code->clear(); - for (auto e : new_entries) { - return_code->push_back(e); + + for (int i = 0; i < ((int)new_entries.size()); i++) { + stack.push_form_element(new_entries.at(i), true); } + + return_code->push_back(pool.alloc_element()); stack.push_form_element(this, true); } diff --git a/docs/markdown/progress-notes/changelog.md b/docs/markdown/progress-notes/changelog.md index 19dadf9560..1b617dcf12 100644 --- a/docs/markdown/progress-notes/changelog.md +++ b/docs/markdown/progress-notes/changelog.md @@ -178,4 +178,6 @@ - `defbehavior` has been added to define a global behavior. - Auto-generated inspect methods of process now start by calling the parent type's inspect, like in GOAL. - Fields with type `(inline-array thing)` can now be set in statics. -- `meters`, `degrees`, and `seconds` types have been added. \ No newline at end of file +- `meters`, `degrees`, and `seconds` types have been added. +- Bitfields with `symbol` fields used in an immediate `(new 'static ...)` can now define the symbol in the `new` form. +- Bitfields with `float` fields used in an immediate `(new 'static ...)` in code can use a non-constant floating point value. \ No newline at end of file diff --git a/goal_src/engine/anim/aligner.gc b/goal_src/engine/anim/aligner.gc index dcf9b4b9da..acbb227088 100644 --- a/goal_src/engine/anim/aligner.gc +++ b/goal_src/engine/anim/aligner.gc @@ -58,11 +58,11 @@ ((or (not v1-16) (!= (-> obj frame-group) v1-16)) (set! a0-9 #t) ) + ((= (-> a0-8 num-func) num-func-loop!) + (set! a0-9 (< (* (-> a0-8 param 0) (- f0-0 (-> obj frame-num))) 0.0)) + ) (else - (if (= (-> a0-8 num-func) num-func-loop!) - (set! a0-9 (< (* (-> a0-8 param 0) (- f0-0 (-> obj frame-num))) 0.0)) - (set! a0-9 (= f0-0 0.0)) - ) + (set! a0-9 (= f0-0 0.0)) ) ) (if a0-9 diff --git a/goal_src/engine/data/res.gc b/goal_src/engine/data/res.gc index 7103f93646..152f0f101a 100644 --- a/goal_src/engine/data/res.gc +++ b/goal_src/engine/data/res.gc @@ -41,7 +41,6 @@ This is updated from the entity system used in Crash 2, which had most of these (defmethod print res-tag ((obj res-tag)) "print a res-tag." - (let ((obj obj)) (if (res-ref? obj) (format #t "#" @@ -60,7 +59,6 @@ This is updated from the entity system used in Crash 2, which had most of these ) obj - ) ) (defmethod length res-tag ((obj res-tag)) diff --git a/goal_src/engine/debug/menu.gc b/goal_src/engine/debug/menu.gc index 43dfa02efb..5b2951f197 100644 --- a/goal_src/engine/debug/menu.gc +++ b/goal_src/engine/debug/menu.gc @@ -753,131 +753,127 @@ (the-as int (car (cdr (cdr (cdr arg1))))) ) ) - (else - (cond - ((or - (= s4-0 'int-var) - (= s4-0 'int-var-gat1) - (= s4-0 'hex-var) - ) - (set! - s5-0 - (new - 'debug - 'debug-menu-item-var - (the-as string s5-1) - (the-as int (car (cdr (cdr arg1)))) - (the-as int (ref arg1 4)) - ) - ) - (let ((s3-4 debug-menu-item-var-make-int) - (s2-3 (the-as debug-menu-item-var s5-0)) - (s1-3 - (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) - ) - (s0-1 (/ (the-as int (ref arg1 5)) 8)) - ) - (set! sv-16 (ref arg1 6)) - (set! sv-32 (/ (the-as int (ref arg1 7)) 8)) - (let ((t1-0 (/ (the-as int (ref arg1 8)) 8)) - (t2-0 (= s4-0 'hex-var)) - ) - (s3-4 - s2-3 - (the-as (function int int int int int) s1-3) - s0-1 - (the-as symbol sv-16) - sv-32 - t1-0 - t2-0 - ) - ) - ) - (set! (-> (the-as debug-menu-item-var s5-0) ifloat-p) #t) - s5-0 - ) - ((= s4-0 'float-var) - (set! - s5-0 - (new - 'debug - 'debug-menu-item-var - (the-as string s5-1) - (the-as int (car (cdr (cdr arg1)))) - (the-as int (ref arg1 4)) - ) - ) - (let ((s4-5 debug-menu-item-var-make-float) - (s3-6 (the-as debug-menu-item-var s5-0)) - (s2-5 - (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) - ) - (s1-5 (the float (/ (the-as int (ref arg1 5)) 8))) - (s0-2 (ref arg1 6)) - ) - (set! sv-48 (the float (/ (the-as int (ref arg1 7)) 8))) - (set! sv-64 (the float (/ (the-as int (ref arg1 8)) 8))) - (let ((t2-1 (/ (the-as int (ref arg1 9)) 8))) - (s4-5 - s3-6 - (the-as (function int int float float int) s2-5) - s1-5 - (the-as symbol s0-2) - sv-48 - sv-64 - (the-as symbol t2-1) - ) - ) - ) - s5-0 - ) - ((= s4-0 'float-fixed-var) - (set! - s5-0 - (new - 'debug - 'debug-menu-item-var - (the-as string s5-1) - (the-as int (car (cdr (cdr arg1)))) - (the-as int (ref arg1 4)) - ) - ) - (let ((s4-7 debug-menu-item-var-make-float) - (s3-8 (the-as debug-menu-item-var s5-0)) - (s2-7 - (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) - ) - (s1-7 - (* 0.001 (the float (/ (the-as int (ref arg1 5)) 8))) - ) - (s0-3 (ref arg1 6)) - ) - (set! - sv-80 - (* 0.001 (the float (/ (the-as int (ref arg1 7)) 8))) - ) - (set! - sv-96 - (* 0.001 (the float (/ (the-as int (ref arg1 8)) 8))) - ) - (let ((t2-2 (/ (the-as int (ref arg1 9)) 8))) - (s4-7 - s3-8 - (the-as (function int int float float int) s2-7) - s1-7 - (the-as symbol s0-3) - sv-80 - sv-96 - (the-as symbol t2-2) - ) - ) - ) - s5-0 - ) - (else - (the-as debug-menu-node #f) + ((or + (= s4-0 'int-var) + (= s4-0 'int-var-gat1) + (= s4-0 'hex-var) + ) + (set! + s5-0 + (new + 'debug + 'debug-menu-item-var + (the-as string s5-1) + (the-as int (car (cdr (cdr arg1)))) + (the-as int (ref arg1 4)) ) ) + (let ((s3-4 debug-menu-item-var-make-int) + (s2-3 (the-as debug-menu-item-var s5-0)) + (s1-3 + (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) + ) + (s0-1 (/ (the-as int (ref arg1 5)) 8)) + ) + (set! sv-16 (ref arg1 6)) + (set! sv-32 (/ (the-as int (ref arg1 7)) 8)) + (let ((t1-0 (/ (the-as int (ref arg1 8)) 8)) + (t2-0 (= s4-0 'hex-var)) + ) + (s3-4 + s2-3 + (the-as (function int int int int int) s1-3) + s0-1 + (the-as symbol sv-16) + sv-32 + t1-0 + t2-0 + ) + ) + ) + (set! (-> (the-as debug-menu-item-var s5-0) ifloat-p) #t) + s5-0 + ) + ((= s4-0 'float-var) + (set! + s5-0 + (new + 'debug + 'debug-menu-item-var + (the-as string s5-1) + (the-as int (car (cdr (cdr arg1)))) + (the-as int (ref arg1 4)) + ) + ) + (let ((s4-5 debug-menu-item-var-make-float) + (s3-6 (the-as debug-menu-item-var s5-0)) + (s2-5 + (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) + ) + (s1-5 (the float (/ (the-as int (ref arg1 5)) 8))) + (s0-2 (ref arg1 6)) + ) + (set! sv-48 (the float (/ (the-as int (ref arg1 7)) 8))) + (set! sv-64 (the float (/ (the-as int (ref arg1 8)) 8))) + (let ((t2-1 (/ (the-as int (ref arg1 9)) 8))) + (s4-5 + s3-6 + (the-as (function int int float float int) s2-5) + s1-5 + (the-as symbol s0-2) + sv-48 + sv-64 + (the-as symbol t2-1) + ) + ) + ) + s5-0 + ) + ((= s4-0 'float-fixed-var) + (set! + s5-0 + (new + 'debug + 'debug-menu-item-var + (the-as string s5-1) + (the-as int (car (cdr (cdr arg1)))) + (the-as int (ref arg1 4)) + ) + ) + (let ((s4-7 debug-menu-item-var-make-float) + (s3-8 (the-as debug-menu-item-var s5-0)) + (s2-7 + (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) + ) + (s1-7 + (* 0.001 (the float (/ (the-as int (ref arg1 5)) 8))) + ) + (s0-3 (ref arg1 6)) + ) + (set! + sv-80 + (* 0.001 (the float (/ (the-as int (ref arg1 7)) 8))) + ) + (set! + sv-96 + (* 0.001 (the float (/ (the-as int (ref arg1 8)) 8))) + ) + (let ((t2-2 (/ (the-as int (ref arg1 9)) 8))) + (s4-7 + s3-8 + (the-as (function int int float float int) s2-7) + s1-7 + (the-as symbol s0-3) + sv-80 + sv-96 + (the-as symbol t2-2) + ) + ) + ) + s5-0 + ) + (else + (the-as debug-menu-node #f) ) ) ) @@ -1072,11 +1068,11 @@ 16 ) ) + ((zero? arg3) + 17 + ) (else - (if (zero? arg3) - 17 - 18 - ) + 18 ) ) ) @@ -1332,11 +1328,11 @@ (set! v1-6 (car (cdr v1-4))) ) ) + ((null? a0-1) + (set! v1-6 (car (last (-> s5-0 items)))) + ) (else - (if (null? a0-1) - (set! v1-6 (car (last (-> s5-0 items)))) - (set! v1-6 (car a0-1)) - ) + (set! v1-6 (car a0-1)) ) ) ) diff --git a/goal_src/engine/dma/dma-disasm.gc b/goal_src/engine/dma/dma-disasm.gc index 1cf639b61d..fd233a0e7d 100644 --- a/goal_src/engine/dma/dma-disasm.gc +++ b/goal_src/engine/dma/dma-disasm.gc @@ -406,6 +406,9 @@ `(disasm-dma-list (the dma-packet (-> ,buff data-buffer)) 'details #t #t 0) ) + +;; NOTE: the decompiler currently outputs something nicer looking for the nexted conds, +;; but keeping the old version with nicer comments for now. (defun disasm-dma-list ((data dma-packet) (mode symbol) (verbose symbol) (stream symbol) (expected-size int)) "Disassemble a dma list, starting from the given packet." (local-vars diff --git a/goal_src/engine/geometry/geometry.gc b/goal_src/engine/geometry/geometry.gc index c4d479d81e..cc1613eaac 100644 --- a/goal_src/engine/geometry/geometry.gc +++ b/goal_src/engine/geometry/geometry.gc @@ -848,45 +848,56 @@ ) (defun point-in-plane-<-point+normal! ((arg0 vector) (arg1 vector) (arg2 vector)) - (let ((f0-3 (+ (+ (* (-> arg2 x) (-> arg1 x)) (* (-> arg2 y) (-> arg1 y))) - (* (-> arg2 z) (-> arg1 z)) - ) - ) - ) - (set! (-> arg0 w) 1.0) - (let ((f1-7 (fabs (-> arg2 x))) - (f2-3 (fabs (-> arg2 y))) - (f3-1 (fabs (-> arg2 z))) - ) - (cond - ((and (< f2-3 f1-7) (< f3-1 f1-7)) - (set! (-> arg0 y) (+ 4096.0 (-> arg1 y))) - (set! (-> arg0 z) (+ 4096.0 (-> arg1 z))) - (set! (-> arg0 x) - (/ (+ (- (- (* (-> arg2 y) (-> arg0 y))) (* (-> arg2 z) (-> arg0 z))) f0-3) (-> arg2 x)) - ) - ) - (else - (cond - ((and (< f1-7 f2-3) (< f3-1 f2-3)) - (set! (-> arg0 x) (+ 4096.0 (-> arg1 x))) - (set! (-> arg0 z) (+ 4096.0 (-> arg1 z))) - (set! (-> arg0 y) - (/ (- (- f0-3 (* (-> arg2 x) (-> arg0 x))) (* (-> arg2 z) (-> arg0 z))) (-> arg2 y)) - ) - ) - (else - (set! (-> arg0 x) (+ 4096.0 (-> arg1 x))) - (set! (-> arg0 y) (+ 4096.0 (-> arg1 y))) - (set! (-> arg0 z) - (/ (+ (- (- (* (-> arg2 x) (-> arg0 x))) (* (-> arg2 y) (-> arg0 y))) f0-3) (-> arg2 z)) - ) - ) - ) - ) - ) + (let + ((f0-3 + (+ + (+ (* (-> arg2 x) (-> arg1 x)) (* (-> arg2 y) (-> arg1 y))) + (* (-> arg2 z) (-> arg1 z)) ) + ) ) + (set! (-> arg0 w) 1.0) + (let ((f1-7 (fabs (-> arg2 x))) + (f2-3 (fabs (-> arg2 y))) + (f3-1 (fabs (-> arg2 z))) + ) + (cond + ((and (< f2-3 f1-7) (< f3-1 f1-7)) + (set! (-> arg0 y) (+ 4096.0 (-> arg1 y))) + (set! (-> arg0 z) (+ 4096.0 (-> arg1 z))) + (set! + (-> arg0 x) + (/ + (+ (- (- (* (-> arg2 y) (-> arg0 y))) (* (-> arg2 z) (-> arg0 z))) f0-3) + (-> arg2 x) + ) + ) + ) + ((and (< f1-7 f2-3) (< f3-1 f2-3)) + (set! (-> arg0 x) (+ 4096.0 (-> arg1 x))) + (set! (-> arg0 z) (+ 4096.0 (-> arg1 z))) + (set! + (-> arg0 y) + (/ + (- (- f0-3 (* (-> arg2 x) (-> arg0 x))) (* (-> arg2 z) (-> arg0 z))) + (-> arg2 y) + ) + ) + ) + (else + (set! (-> arg0 x) (+ 4096.0 (-> arg1 x))) + (set! (-> arg0 y) (+ 4096.0 (-> arg1 y))) + (set! + (-> arg0 z) + (/ + (+ (- (- (* (-> arg2 x) (-> arg0 x))) (* (-> arg2 y) (-> arg0 y))) f0-3) + (-> arg2 z) + ) + ) + ) + ) + ) + ) arg0 ) diff --git a/goal_src/engine/gfx/hw/gs.gc b/goal_src/engine/gfx/hw/gs.gc index 7a95a53bb5..78c9e07537 100644 --- a/goal_src/engine/gfx/hw/gs.gc +++ b/goal_src/engine/gfx/hw/gs.gc @@ -53,37 +53,47 @@ (defun psm-size ((arg0 gs-psm)) "Convert texture format to some type of size." (cond - ((= arg0 (gs-psm mt8)) 64) - ((= arg0 (gs-psm mt4)) 32) - (else - (if (or (= arg0 (gs-psm ct16)) - (= arg0 (gs-psm ct16s)) - (= arg0 (gs-psm mz16)) - (= arg0 (gs-psm mz16s)) - ) - 128 - 256 - ) - ) + ((= arg0 (gs-psm mt8)) + 64 ) + ((= arg0 (gs-psm mt4)) + 32 + ) + ((or + (= arg0 (gs-psm ct16)) + (= arg0 (gs-psm ct16s)) + (= arg0 (gs-psm mz16)) + (= arg0 (gs-psm mz16s)) + ) + 128 + ) + (else + 256 + ) + ) ) (defun psm-page-height ((arg0 gs-psm)) "Convert texture format to some type of page height" (cond - ((= arg0 (gs-psm mt8)) 64) - ((= arg0 (gs-psm mt4)) 128) - (else - (if (or (= arg0 (gs-psm ct16)) - (= arg0 (gs-psm ct16s)) - (= arg0 (gs-psm mz16)) - (= arg0 (gs-psm mz16s)) - ) - 64 - 32 - ) - ) + ((= arg0 (gs-psm mt8)) + 64 ) + ((= arg0 (gs-psm mt4)) + 128 + ) + ((or + (= arg0 (gs-psm ct16)) + (= arg0 (gs-psm ct16s)) + (= arg0 (gs-psm mz16)) + (= arg0 (gs-psm mz16s)) + ) + 64 + ) + (else + 32 + ) + ) ) (defun psm->string ((arg0 gs-psm)) diff --git a/goal_src/engine/gfx/mood-h.gc b/goal_src/engine/gfx/mood-h.gc index 90935660a0..9d6104c914 100644 --- a/goal_src/engine/gfx/mood-h.gc +++ b/goal_src/engine/gfx/mood-h.gc @@ -93,52 +93,55 @@ (defmethod new mood-context ((allocation symbol) (type-to-make type)) - (local-vars - (v0-0 mood-context) - (v1 vector) - ) - (set! v0-0 - (object-new allocation type-to-make (the-as int (-> type-to-make size))) - ) - (set! v1 (-> v0-0 times 0)) - (set! (-> v1 data 0) 1.000000) - (set! (-> v1 data 1) 1.000000) - (set! (-> v1 data 2) 1.000000) - (set! (-> v1 data 3) 0.000000) - (set! v1 (-> v0-0 times 1)) - (set! (-> v1 data 0) 1.000000) - (set! (-> v1 data 1) 1.000000) - (set! (-> v1 data 2) 1.000000) - (set! (-> v1 data 3) 0.000000) - (set! v1 (-> v0-0 times 2)) - (set! (-> v1 data 0) 1.000000) - (set! (-> v1 data 1) 1.000000) - (set! (-> v1 data 2) 1.000000) - (set! (-> v1 data 3) 0.000000) - (set! v1 (-> v0-0 times 3)) - (set! (-> v1 data 0) 1.000000) - (set! (-> v1 data 1) 1.000000) - (set! (-> v1 data 2) 1.000000) - (set! (-> v1 data 3) 0.000000) - (set! v1 (-> v0-0 times 4)) - (set! (-> v1 data 0) 1.000000) - (set! (-> v1 data 1) 1.000000) - (set! (-> v1 data 2) 1.000000) - (set! (-> v1 data 3) 0.000000) - (set! v1 (-> v0-0 times 5)) - (set! (-> v1 data 0) 1.000000) - (set! (-> v1 data 1) 1.000000) - (set! (-> v1 data 2) 1.000000) - (set! (-> v1 data 3) 0.000000) - (set! v1 (-> v0-0 times 6)) - (set! (-> v1 data 0) 1.000000) - (set! (-> v1 data 1) 1.000000) - (set! (-> v1 data 2) 1.000000) - (set! (-> v1 data 3) 0.000000) - (set! v1 (-> v0-0 times 7)) - (set! (-> v1 data 0) 1.000000) - (set! (-> v1 data 1) 1.000000) - (set! (-> v1 data 2) 1.000000) - (set! (-> v1 data 3) 0.000000) - v0-0 + (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (let ((v1-2 (-> v0-0 times))) + (set! (-> v1-2 0 x) 1.0) + (set! (-> v1-2 0 y) 1.0) + (set! (-> v1-2 0 z) 1.0) + (set! (-> v1-2 0 w) 0.0) + ) + (let ((v1-3 (-> v0-0 times 1))) + (set! (-> v1-3 x) 1.0) + (set! (-> v1-3 y) 1.0) + (set! (-> v1-3 z) 1.0) + (set! (-> v1-3 w) 0.0) + ) + (let ((v1-4 (-> v0-0 times 2))) + (set! (-> v1-4 x) 1.0) + (set! (-> v1-4 y) 1.0) + (set! (-> v1-4 z) 1.0) + (set! (-> v1-4 w) 0.0) + ) + (let ((v1-5 (-> v0-0 times 3))) + (set! (-> v1-5 x) 1.0) + (set! (-> v1-5 y) 1.0) + (set! (-> v1-5 z) 1.0) + (set! (-> v1-5 w) 0.0) + ) + (let ((v1-6 (-> v0-0 times 4))) + (set! (-> v1-6 x) 1.0) + (set! (-> v1-6 y) 1.0) + (set! (-> v1-6 z) 1.0) + (set! (-> v1-6 w) 0.0) + ) + (let ((v1-7 (-> v0-0 times 5))) + (set! (-> v1-7 x) 1.0) + (set! (-> v1-7 y) 1.0) + (set! (-> v1-7 z) 1.0) + (set! (-> v1-7 w) 0.0) + ) + (let ((v1-8 (-> v0-0 times 6))) + (set! (-> v1-8 x) 1.0) + (set! (-> v1-8 y) 1.0) + (set! (-> v1-8 z) 1.0) + (set! (-> v1-8 w) 0.0) + ) + (let ((v1-9 (-> v0-0 times 7))) + (set! (-> v1-9 x) 1.0) + (set! (-> v1-9 y) 1.0) + (set! (-> v1-9 z) 1.0) + (set! (-> v1-9 w) 0.0) + ) + v0-0 + ) ) diff --git a/goal_src/engine/gfx/texture.gc b/goal_src/engine/gfx/texture.gc index a016db7147..7ea2904c98 100644 --- a/goal_src/engine/gfx/texture.gc +++ b/goal_src/engine/gfx/texture.gc @@ -161,22 +161,20 @@ (defun texture-bpp ((arg0 gs-psm)) "Get the number of bits per pixel for the given texture format" - (let ((v1-0 arg0)) - (cond - ((= v1-0 (gs-psm mt8)) 8) - ((= v1-0 (gs-psm mt4)) 4) - (else - (if (or (= v1-0 (gs-psm ct16)) - (= v1-0 (gs-psm ct16s)) - (= v1-0 (gs-psm mz16)) - (= v1-0 (gs-psm mz16s)) - ) - 16 - 32 - ) - ) - ) + (case arg0 + (((gs-psm mt8)) + 8 + ) + (((gs-psm mt4)) + 4 ) + (((gs-psm ct16) (gs-psm ct16s) (gs-psm mz16) (gs-psm mz16s)) + 16 + ) + (else + 32 + ) + ) ) (defun texture-qwc ((w int) (h int) (tex-format gs-psm)) @@ -364,88 +362,72 @@ ) (defun gs-page-width ((arg0 gs-psm)) - (let ((v1-0 arg0)) - (if (or (zero? v1-0) - (= v1-0 (gs-psm ct24)) - (= v1-0 (gs-psm ct16)) - (= v1-0 (gs-psm ct16s)) - ) - 64 - (cond - ((or (= v1-0 (gs-psm mt8)) (= v1-0 (gs-psm mt4))) - 128 - ) - (else - (format #t "Warning: Unknown block width for psm ~D~%" arg0) - 1 - ) - ) - ) + (case arg0 + (((gs-psm ct32) (gs-psm ct24) (gs-psm ct16) (gs-psm ct16s)) + 64 + ) + (((gs-psm mt8) (gs-psm mt4)) + 128 ) + (else + (format #t "Warning: Unknown block width for psm ~D~%" arg0) + 1 + ) + ) ) (defun gs-page-height ((arg0 gs-psm)) - (let ((v1-0 arg0)) - (if (or (zero? v1-0) (= v1-0 (gs-psm ct24))) - 32 - (cond - ((or (= v1-0 (gs-psm ct16)) (= v1-0 (gs-psm ct16s))) - 64 - ) - ((= v1-0 (gs-psm mt8)) - 64 - ) - ((= v1-0 (gs-psm mt4)) - 128 - ) - (else - (format #t "Warning: Unknown block width for psm ~D~%" arg0) - 1 - ) - ) - ) + (case arg0 + (((gs-psm ct32) (gs-psm ct24)) + 32 + ) + (((gs-psm ct16) (gs-psm ct16s)) + 64 ) + (((gs-psm mt8)) + 64 + ) + (((gs-psm mt4)) + 128 + ) + (else + (format #t "Warning: Unknown block width for psm ~D~%" arg0) + 1 + ) + ) ) (defun gs-block-width ((arg0 gs-psm)) - (let ((v1-0 arg0)) - (if (or (zero? v1-0) (= v1-0 (gs-psm ct24))) - 8 - (cond - ((or (= v1-0 (gs-psm ct16)) (= v1-0 (gs-psm ct16s)) (= v1-0 (gs-psm mt8))) - 16 - ) - ((= v1-0 (gs-psm mt4)) - 32 - ) - (else - (format #t "Warning: Unknown block width for psm ~D~%" arg0) - 1 - ) + (case arg0 + (((gs-psm ct32) (gs-psm ct24)) + 8 ) + (((gs-psm ct16) (gs-psm ct16s) (gs-psm mt8)) + 16 + ) + (((gs-psm mt4)) + 32 + ) + (else + (format #t "Warning: Unknown block width for psm ~D~%" arg0) + 1 ) ) ) (defun gs-block-height ((arg0 gs-psm)) - (let ((v1-0 arg0)) - (if (or (zero? v1-0) - (= v1-0 (gs-psm ct24)) - (= v1-0 (gs-psm ct16)) - (= v1-0 (gs-psm ct16s)) - ) - 8 - (cond - ((or (= v1-0 (gs-psm mt8)) (= v1-0 (gs-psm mt4))) - 16 - ) - (else - (format #t "Warning: Unknown block width for psm ~D~%" arg0) - 1 - ) - ) - ) + (case arg0 + (((gs-psm ct32) (gs-psm ct24) (gs-psm ct16) (gs-psm ct16s)) + 8 + ) + (((gs-psm mt8) (gs-psm mt4)) + 16 ) + (else + (format #t "Warning: Unknown block width for psm ~D~%" arg0) + 1 + ) + ) ) (defun gs-largest-block ((tex-width int) (tex-height int) (tex-format gs-psm)) @@ -533,33 +515,69 @@ (defmethod lookup-boot-common-id texture-pool ((obj texture-pool) (arg0 int)) "Map these special textures to a number betwen 0 and 19. For other textures, return -1. NOTE: hud means start menu + zoomer, not the usual health HUD." - (let ((v1-0 arg0)) - (cond - ((= v1-0 1032) 0) ;; hud (seg0 only) - ((= v1-0 1119) 1) ;; zoomer-hud (not actually loaded at boot) - ((= v1-0 1478) 2) ;; doesn't exist? (likely demo1) - ((= v1-0 1485) 3) ;; demo2 (seg0 only) - ((= v1-0 1486) 4) ;; demo3 (seg0 only) - ((= v1-0 1487) 5) ;; demo4 (seg0 only) - (else - (cond - ((or (= v1-0 635) (= v1-0 1609)) 6) ;; X or demo5j (seg0 only) - ((= v1-0 636) 7) ;; nope - ((= v1-0 637) 8) ;; nope - ((= v1-0 752) 9) ;; nope - ((= v1-0 1598) 10) ;; nope - ((= v1-0 1599) 11) ;; demo2f - ((= v1-0 1600) 12) ;; demo2g - ((= v1-0 1601) 13) ;; demo2i - ((= v1-0 1602) 14) ;; demo2s - ((= v1-0 1603) 15) ;; demo4e - ((= v1-0 1604) 16) ;; demo4f - ((= v1-0 1605) 17) ;; demo4g - ((= v1-0 1606) 18) ;; demo4i - ((= v1-0 1607) 19) ;; demo4s - (else -1) - ) + (case arg0 + ((1032) ;; hud (seg0 only) + 0 ) + ((1119) ;; zoomer-hud (not actually loaded at boot) + 1 + ) + ((1478) ;; doesn't exist? (likely demo1) + 2 + ) + ((1485) ;; demo2 (seg0 only) + 3 + ) + ((1486) ;; demo3 (seg0 only) + 4 + ) + ((1487) ;; demo4 (seg0 only) + 5 + ) + ((635 1609) ;; X or demo5j (seg0 only) + 6 + ) + ((636) ;; nope + 7 + ) + ((637) ;; nope + 8 + ) + ((752) ;; nope + 9 + ) + ((1598) ;; nope + 10 + ) + ((1599) ;; demo2f + 11 + ) + ((1600) ;; demo2g + 12 + ) + ((1601) ;; demo2i + 13 + ) + ((1602) ;; demo2s + 14 + ) + ((1603) ;; demo4e + 15 + ) + ((1604) ;; demo4f + 16 + ) + ((1605) ;; demo4g + 17 + ) + ((1606) ;; demo4i + 18 + ) + ((1607) ;; demo4s + 19 + ) + (else + -1 ) ) ) @@ -2873,12 +2891,10 @@ ;; iterate through all textures (dotimes (a0-1 (-> v1-0 length)) ;; found it! - (if (= arg0 (-> v1-0 entries a0-1 page)) - (begin - (set! a0-2 a0-1) - (goto cfg-7) - ) - ) + (when (= arg0 (-> v1-0 entries a0-1 page)) + (set! a0-2 a0-1) + (goto cfg-7) + ) ) (set! a0-2 -1) (label cfg-7) diff --git a/goal_src/kernel/gcommon.gc b/goal_src/kernel/gcommon.gc index 2136ca5ede..e2e9131d6b 100644 --- a/goal_src/kernel/gcommon.gc +++ b/goal_src/kernel/gcommon.gc @@ -757,107 +757,127 @@ "Print array." (format #t "#(") (cond - ((type-type? (-> obj content-type) integer) - (let ((content-type-sym (-> obj content-type symbol))) - (cond - ((= content-type-sym 'int32) - (dotimes (s5-0 (-> obj length)) - (format #t (if (zero? s5-0) "~D" " ~D") - (-> (the-as (array int32) obj) s5-0) + ((type-type? (-> obj content-type) integer) + (case (-> obj content-type symbol) + (('int32) + (dotimes (s5-0 (-> obj length)) + (format #t (if (zero? s5-0) + "~D" + " ~D" ) - ) - ) - ((= content-type-sym 'uint32) - (dotimes (s5-1 (-> obj length)) - (format #t (if (zero? s5-1) "~D" " ~D") - (-> (the-as (array uint32) obj) s5-1) - ) - ) - ) - ((= content-type-sym 'int64) - (dotimes (s5-2 (-> obj length)) - (format #t (if (zero? s5-2) "~D" " ~D") - (-> (the-as (array int64) obj) s5-2) - ) - ) - ) - ((= content-type-sym 'uint64) - (dotimes (s5-3 (-> obj length)) - (format #t (if (zero? s5-3) "#x~X" " #x~X") - (-> (the-as (array uint64) obj) s5-3) - ) - ) - ) - ((= content-type-sym 'int8) - (dotimes (s5-4 (-> obj length)) - (format #t (if (zero? s5-4) "~D" " ~D") - (-> (the-as (array int8) obj) s5-4) - ) - ) - ) - ((= content-type-sym 'uint8) - (dotimes (s5-5 (-> obj length)) - (format #t (if (zero? s5-5) "~D" " ~D") - (-> (the-as (array uint8) obj) s5-5) - ) - ) - ) - ((= content-type-sym 'int16) - (dotimes (s5-6 (-> obj length)) - (format #t (if (zero? s5-6) "~D" " ~D") - (-> (the-as (array int16) obj) s5-6) - ) - ) - ) - ((= content-type-sym 'uint16) - (dotimes (s5-7 (-> obj length)) - (format #t (if (zero? s5-7) "~D" " ~D") - (-> (the-as (array uint16) obj) s5-7) - ) - ) - ) - (else - (cond - ((or (= content-type-sym 'uint128) (= content-type-sym 'int128)) - (dotimes (s5-8 (-> obj length)) - (format #t (if (zero? s5-8) "#x~X" " #x~X") - (-> (the-as (array uint128) obj) s5-8) - ) - ) - ) - (else - (dotimes (s5-9 (-> obj length)) - (format #t (if (zero? s5-9) "~D" " ~D") - (-> (the-as (array int32) obj) s5-9) - ) - ) - ) - ) - ) + (-> (the-as (array int32) obj) s5-0) ) - ) - ) - (else - (cond - ((= (-> obj content-type) float) - (dotimes (s5-10 (-> obj length)) - (if (zero? s5-10) - (format #t "~f" (-> (the-as (array float) obj) s5-10)) - (format #t " ~f" (-> (the-as (array float) obj) s5-10)) - ) - ) - ) - (else - (dotimes (s5-11 (-> obj length)) - (if (zero? s5-11) - (format #t "~A" (-> (the-as (array basic) obj) s5-11)) - (format #t " ~A" (-> (the-as (array basic) obj) s5-11)) - ) - ) ) ) + (('uint32) + (dotimes (s5-1 (-> obj length)) + (format #t (if (zero? s5-1) + "~D" + " ~D" + ) + (-> (the-as (array uint32) obj) s5-1) + ) + ) + ) + (('int64) + (dotimes (s5-2 (-> obj length)) + (format #t (if (zero? s5-2) + "~D" + " ~D" + ) + (-> (the-as (array int64) obj) s5-2) + ) + ) + ) + (('uint64) + (dotimes (s5-3 (-> obj length)) + (format #t (if (zero? s5-3) + "#x~X" + " #x~X" + ) + (-> (the-as (array uint64) obj) s5-3) + ) + ) + ) + (('int8) + (dotimes (s5-4 (-> obj length)) + (format #t (if (zero? s5-4) + "~D" + " ~D" + ) + (-> (the-as (array int8) obj) s5-4) + ) + ) + ) + (('uint8) + (dotimes (s5-5 (-> obj length)) + (format #t (if (zero? s5-5) + "~D" + " ~D" + ) + (-> (the-as (array uint8) obj) s5-5) + ) + ) + ) + (('int16) + (dotimes (s5-6 (-> obj length)) + (format #t (if (zero? s5-6) + "~D" + " ~D" + ) + (-> (the-as (array int16) obj) s5-6) + ) + ) + ) + (('uint16) + (dotimes (s5-7 (-> obj length)) + (format #t (if (zero? s5-7) + "~D" + " ~D" + ) + (-> (the-as (array uint16) obj) s5-7) + ) + ) + ) + (('uint128 'int128) + (dotimes (s5-8 (-> obj length)) + (format #t (if (zero? s5-8) + "#x~X" + " #x~X" + ) + (-> (the-as (array uint128) obj) s5-8) + ) + ) + ) + (else + (dotimes (s5-9 (-> obj length)) + (format #t (if (zero? s5-9) + "~D" + " ~D" + ) + (-> (the-as (array int32) obj) s5-9) + ) + ) + ) ) ) + ((= (-> obj content-type) float) + (dotimes (s5-10 (-> obj length)) + (if (zero? s5-10) + (format #t "~f" (-> (the-as (array float) obj) s5-10)) + (format #t " ~f" (-> (the-as (array float) obj) s5-10)) + ) + ) + ) + (else + (dotimes (s5-11 (-> obj length)) + (if (zero? s5-11) + (format #t "~A" (-> (the-as (array basic) obj) s5-11)) + (format #t " ~A" (-> (the-as (array basic) obj) s5-11)) + ) + ) + ) + ) (format #t ")") obj ) @@ -871,86 +891,71 @@ (format #t "~Tcontent-type: ~A~%" (-> obj content-type)) (format #t "~Tdata[~D]: @ #x~X~%" (-> obj allocated-length) (-> obj data)) (cond - ((type-type? (-> obj content-type) integer) - (let ((content-type-sym (-> obj content-type symbol))) - (cond - ((= content-type-sym 'int32) - (dotimes (s5-0 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-0 (-> (the-as (array int32) obj) s5-0)) - ) - ) - ((= content-type-sym 'uint32) - (dotimes (s5-1 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-1 (-> (the-as (array uint32) obj) s5-1)) - ) - ) - ((= content-type-sym 'int64) - (dotimes (s5-2 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-2 (-> (the-as (array int64) obj) s5-2)) - ) - ) - ((= content-type-sym 'uint64) - (dotimes (s5-3 (-> obj length)) - (format #t "~T [~D] #x~X~%" s5-3 (-> (the-as (array uint64) obj) s5-3)) - ) - ) - ((= content-type-sym 'int8) - (dotimes (s5-4 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-4 (-> (the-as (array int8) obj) s5-4)) - ) - ) - ((= content-type-sym 'uint8) - (dotimes (s5-5 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-5 (-> (the-as (array int8) obj) s5-5)) - ) - ) - ((= content-type-sym 'int16) - (dotimes (s5-6 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-6 (-> (the-as (array int16) obj) s5-6)) - ) - ) - ((= content-type-sym 'uint16) - (dotimes (s5-7 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-7 (-> (the-as (array uint16) obj) s5-7)) - ) - ) - (else - (cond - ((or (= content-type-sym 'int128) (= content-type-sym 'uint128)) - (dotimes (s5-8 (-> obj length)) - (format - #t - "~T [~D] #x~X~%" - s5-8 - (-> (the-as (array uint128) obj) s5-8) - ) - ) - ) - (else - (dotimes (s5-9 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-9 (-> (the-as (array int32) obj) s5-9)) - ) - ) - ) - ) - ) - ) - ) - (else - (cond - ((= (-> obj content-type) float) - (dotimes (s5-10 (-> obj length)) - (format #t "~T [~D] ~f~%" s5-10 (-> (the-as (array float) obj) s5-10)) - ) - ) - (else - (dotimes (s5-11 (-> obj length)) - (format #t "~T [~D] ~A~%" s5-11 (-> (the-as (array basic) obj) s5-11)) - ) + ((type-type? (-> obj content-type) integer) + (case (-> obj content-type symbol) + (('int32) + (dotimes (s5-0 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-0 (-> (the-as (array int32) obj) s5-0)) ) ) + (('uint32) + (dotimes (s5-1 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-1 (-> (the-as (array uint32) obj) s5-1)) + ) + ) + (('int64) + (dotimes (s5-2 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-2 (-> (the-as (array int64) obj) s5-2)) + ) + ) + (('uint64) + (dotimes (s5-3 (-> obj length)) + (format #t "~T [~D] #x~X~%" s5-3 (-> (the-as (array uint64) obj) s5-3)) + ) + ) + (('int8) + (dotimes (s5-4 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-4 (-> (the-as (array int8) obj) s5-4)) + ) + ) + (('uint8) + (dotimes (s5-5 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-5 (-> (the-as (array int8) obj) s5-5)) + ) + ) + (('int16) + (dotimes (s5-6 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-6 (-> (the-as (array int16) obj) s5-6)) + ) + ) + (('uint16) + (dotimes (s5-7 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-7 (-> (the-as (array uint16) obj) s5-7)) + ) + ) + (('int128 'uint128) + (dotimes (s5-8 (-> obj length)) + (format #t "~T [~D] #x~X~%" s5-8 (-> (the-as (array uint128) obj) s5-8)) + ) + ) + (else + (dotimes (s5-9 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-9 (-> (the-as (array int32) obj) s5-9)) + ) + ) ) ) + ((= (-> obj content-type) float) + (dotimes (s5-10 (-> obj length)) + (format #t "~T [~D] ~f~%" s5-10 (-> (the-as (array float) obj) s5-10)) + ) + ) + (else + (dotimes (s5-11 (-> obj length)) + (format #t "~T [~D] ~A~%" s5-11 (-> (the-as (array basic) obj) s5-11)) + ) + ) + ) obj ) diff --git a/goalc/compiler/compilation/Static.cpp b/goalc/compiler/compilation/Static.cpp index 1d9b55a507..68a9c62403 100644 --- a/goalc/compiler/compilation/Static.cpp +++ b/goalc/compiler/compilation/Static.cpp @@ -379,10 +379,21 @@ Val* Compiler::compile_bitfield_definition(const goos::Object& form, float value = 0.f; if (!try_getting_constant_float(field_value, &value, env)) { - throw_compiler_error(form, - "Field {} is a float, but the value given couldn't " - "be converted to a float at compile time.", - field_name_def); + // failed to get as constant, add to dynamic or error. + if (allow_dynamic_construction) { + DynamicDef dyn; + dyn.definition = field_value; + dyn.field_offset = field_offset; + dyn.field_size = field_size; + dyn.field_name = field_name_def; + dyn.expected_type = TypeSpec("float"); + dynamic_defs.push_back(dyn); + } else { + throw_compiler_error(form, + "Field {} is a float, but the value given couldn't " + "be converted to a float at compile time.", + field_name_def); + } } u64 float_value = float_as_u32(value); bool start_lo = field_offset < 64; @@ -393,6 +404,20 @@ Val* Compiler::compile_bitfield_definition(const goos::Object& form, } else { constant_integer_part.hi |= (float_value << (field_offset - 64)); } + } else if (field_info.result_type == TypeSpec("symbol")) { + if (allow_dynamic_construction) { + DynamicDef dyn; + dyn.definition = field_value; + dyn.field_offset = field_offset; + dyn.field_size = field_size; + dyn.field_name = field_name_def; + dyn.expected_type = coerce_to_reg_type(field_info.result_type); + dynamic_defs.push_back(dyn); + } else { + throw_compiler_error( + form, "Field {} is a symbol, which cannot be constructed at compile time yet.", + field_name_def); + } } else { diff --git a/test/decompiler/reference/engine/anim/aligner_REF.gc b/test/decompiler/reference/engine/anim/aligner_REF.gc index 71adeb9ac7..0f90cf76b0 100644 --- a/test/decompiler/reference/engine/anim/aligner_REF.gc +++ b/test/decompiler/reference/engine/anim/aligner_REF.gc @@ -51,11 +51,11 @@ ((or (not v1-16) (!= (-> obj frame-group) v1-16)) (set! a0-9 #t) ) + ((= (-> a0-8 num-func) num-func-loop!) + (set! a0-9 (< (* (-> a0-8 param 0) (- f0-0 (-> obj frame-num))) 0.0)) + ) (else - (if (= (-> a0-8 num-func) num-func-loop!) - (set! a0-9 (< (* (-> a0-8 param 0) (- f0-0 (-> obj frame-num))) 0.0)) - (set! a0-9 (= f0-0 0.0)) - ) + (set! a0-9 (= f0-0 0.0)) ) ) (if a0-9 @@ -259,7 +259,3 @@ (-> obj process root) (none) ) - - - - diff --git a/test/decompiler/reference/engine/debug/menu_REF.gc b/test/decompiler/reference/engine/debug/menu_REF.gc index 9bc7cb216f..f8e07e571e 100644 --- a/test/decompiler/reference/engine/debug/menu_REF.gc +++ b/test/decompiler/reference/engine/debug/menu_REF.gc @@ -773,11 +773,9 @@ (sv-80 float) (sv-96 float) ) - (if (or (not arg1) (null? arg1)) - (begin - (set! s5-0 (the-as debug-menu-node #f)) - (goto cfg-41) - ) + (when (or (not arg1) (null? arg1)) + (set! s5-0 (the-as debug-menu-node #f)) + (goto cfg-41) ) (let ((s4-0 (car arg1)) (s5-1 (car (cdr arg1))) @@ -853,131 +851,127 @@ (the-as int (car (cdr (cdr (cdr arg1))))) ) ) - (else - (cond - ((or - (= s4-0 'int-var) - (= s4-0 'int-var-gat1) - (= s4-0 'hex-var) - ) - (set! - s5-0 - (new - 'debug - 'debug-menu-item-var - (the-as string s5-1) - (the-as int (car (cdr (cdr arg1)))) - (the-as int (ref arg1 4)) - ) - ) - (let ((s3-4 debug-menu-item-var-make-int) - (s2-3 (the-as debug-menu-item-var s5-0)) - (s1-3 - (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) - ) - (s0-1 (/ (the-as int (ref arg1 5)) 8)) - ) - (set! sv-16 (ref arg1 6)) - (set! sv-32 (/ (the-as int (ref arg1 7)) 8)) - (let ((t1-0 (/ (the-as int (ref arg1 8)) 8)) - (t2-0 (= s4-0 'hex-var)) - ) - (s3-4 - s2-3 - (the-as (function int int int int int) s1-3) - s0-1 - (the-as symbol sv-16) - sv-32 - t1-0 - t2-0 - ) - ) - ) - (set! (-> (the-as debug-menu-item-var s5-0) ifloat-p) #t) - s5-0 - ) - ((= s4-0 'float-var) - (set! - s5-0 - (new - 'debug - 'debug-menu-item-var - (the-as string s5-1) - (the-as int (car (cdr (cdr arg1)))) - (the-as int (ref arg1 4)) - ) - ) - (let ((s4-5 debug-menu-item-var-make-float) - (s3-6 (the-as debug-menu-item-var s5-0)) - (s2-5 - (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) - ) - (s1-5 (the float (/ (the-as int (ref arg1 5)) 8))) - (s0-2 (ref arg1 6)) - ) - (set! sv-48 (the float (/ (the-as int (ref arg1 7)) 8))) - (set! sv-64 (the float (/ (the-as int (ref arg1 8)) 8))) - (let ((t2-1 (/ (the-as int (ref arg1 9)) 8))) - (s4-5 - s3-6 - (the-as (function int int float float int) s2-5) - s1-5 - (the-as symbol s0-2) - sv-48 - sv-64 - (the-as symbol t2-1) - ) - ) - ) - s5-0 - ) - ((= s4-0 'float-fixed-var) - (set! - s5-0 - (new - 'debug - 'debug-menu-item-var - (the-as string s5-1) - (the-as int (car (cdr (cdr arg1)))) - (the-as int (ref arg1 4)) - ) - ) - (let ((s4-7 debug-menu-item-var-make-float) - (s3-8 (the-as debug-menu-item-var s5-0)) - (s2-7 - (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) - ) - (s1-7 - (* 0.001 (the float (/ (the-as int (ref arg1 5)) 8))) - ) - (s0-3 (ref arg1 6)) - ) - (set! - sv-80 - (* 0.001 (the float (/ (the-as int (ref arg1 7)) 8))) - ) - (set! - sv-96 - (* 0.001 (the float (/ (the-as int (ref arg1 8)) 8))) - ) - (let ((t2-2 (/ (the-as int (ref arg1 9)) 8))) - (s4-7 - s3-8 - (the-as (function int int float float int) s2-7) - s1-7 - (the-as symbol s0-3) - sv-80 - sv-96 - (the-as symbol t2-2) - ) - ) - ) - s5-0 - ) - (else - (the-as debug-menu-node #f) + ((or + (= s4-0 'int-var) + (= s4-0 'int-var-gat1) + (= s4-0 'hex-var) + ) + (set! + s5-0 + (new + 'debug + 'debug-menu-item-var + (the-as string s5-1) + (the-as int (car (cdr (cdr arg1)))) + (the-as int (ref arg1 4)) ) ) + (let ((s3-4 debug-menu-item-var-make-int) + (s2-3 (the-as debug-menu-item-var s5-0)) + (s1-3 + (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) + ) + (s0-1 (/ (the-as int (ref arg1 5)) 8)) + ) + (set! sv-16 (ref arg1 6)) + (set! sv-32 (/ (the-as int (ref arg1 7)) 8)) + (let ((t1-0 (/ (the-as int (ref arg1 8)) 8)) + (t2-0 (= s4-0 'hex-var)) + ) + (s3-4 + s2-3 + (the-as (function int int int int int) s1-3) + s0-1 + (the-as symbol sv-16) + sv-32 + t1-0 + t2-0 + ) + ) + ) + (set! (-> (the-as debug-menu-item-var s5-0) ifloat-p) #t) + s5-0 + ) + ((= s4-0 'float-var) + (set! + s5-0 + (new + 'debug + 'debug-menu-item-var + (the-as string s5-1) + (the-as int (car (cdr (cdr arg1)))) + (the-as int (ref arg1 4)) + ) + ) + (let ((s4-5 debug-menu-item-var-make-float) + (s3-6 (the-as debug-menu-item-var s5-0)) + (s2-5 + (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) + ) + (s1-5 (the float (/ (the-as int (ref arg1 5)) 8))) + (s0-2 (ref arg1 6)) + ) + (set! sv-48 (the float (/ (the-as int (ref arg1 7)) 8))) + (set! sv-64 (the float (/ (the-as int (ref arg1 8)) 8))) + (let ((t2-1 (/ (the-as int (ref arg1 9)) 8))) + (s4-5 + s3-6 + (the-as (function int int float float int) s2-5) + s1-5 + (the-as symbol s0-2) + sv-48 + sv-64 + (the-as symbol t2-1) + ) + ) + ) + s5-0 + ) + ((= s4-0 'float-fixed-var) + (set! + s5-0 + (new + 'debug + 'debug-menu-item-var + (the-as string s5-1) + (the-as int (car (cdr (cdr arg1)))) + (the-as int (ref arg1 4)) + ) + ) + (let ((s4-7 debug-menu-item-var-make-float) + (s3-8 (the-as debug-menu-item-var s5-0)) + (s2-7 + (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) + ) + (s1-7 + (* 0.001 (the float (/ (the-as int (ref arg1 5)) 8))) + ) + (s0-3 (ref arg1 6)) + ) + (set! + sv-80 + (* 0.001 (the float (/ (the-as int (ref arg1 7)) 8))) + ) + (set! + sv-96 + (* 0.001 (the float (/ (the-as int (ref arg1 8)) 8))) + ) + (let ((t2-2 (/ (the-as int (ref arg1 9)) 8))) + (s4-7 + s3-8 + (the-as (function int int float float int) s2-7) + s1-7 + (the-as symbol s0-3) + sv-80 + sv-96 + (the-as symbol t2-2) + ) + ) + ) + s5-0 + ) + (else + (the-as debug-menu-node #f) ) ) ) @@ -1006,25 +1000,21 @@ (set! arg1 (cdr arg1)) (let ((s5-0 (car s3-0))) (while (not (null? s3-0)) - (if + (when (string= (the-as string s4-1) (-> (the-as debug-menu-item s5-0) name)) - (begin - (if (type-type? (rtype-of s5-0) debug-menu-item-submenu) - (set! s4-0 (-> (the-as debug-menu-item-submenu s5-0) submenu)) - (set! s4-0 s5-0) - ) - (goto cfg-17) + (if (type-type? (rtype-of s5-0) debug-menu-item-submenu) + (set! s4-0 (-> (the-as debug-menu-item-submenu s5-0) submenu)) + (set! s4-0 s5-0) ) + (goto cfg-17) ) (set! s3-0 (cdr s3-0)) (set! s5-0 (car s3-0)) ) ) ) - (begin - (set! s4-0 #f) - (goto cfg-24) - ) + (set! s4-0 #f) + (goto cfg-24) ) (label cfg-24) (the-as debug-menu s4-0) @@ -1172,11 +1162,11 @@ 16 ) ) + ((zero? arg3) + 17 + ) (else - (if (zero? arg3) - 17 - 18 - ) + 18 ) ) ) @@ -1276,9 +1266,7 @@ ) (while (not (null? a0-1)) (if (= a1-1 arg3) - (begin - (goto cfg-7) - ) + (goto cfg-7) ) (+! v1-0 1) (set! a0-1 (cdr a0-1)) @@ -1407,23 +1395,19 @@ ) (let ((a3-0 (-> s5-0 items))) (while (not (null? a3-0)) - (if (= (car a3-0) a2-0) - (begin - (set! v1-4 a3-0) - (goto cfg-7) - ) + (when (= (car a3-0) a2-0) + (set! v1-4 a3-0) + (goto cfg-7) ) (set! a0-1 a3-0) (set! a3-0 (cdr a3-0)) ) ) (label cfg-7) - (if (null? v1-4) - (begin - (format 0 "ERROR: Couldn't find selected item in menu.~%") - (set! arg0 arg0) - (goto cfg-19) - ) + (when (null? v1-4) + (format 0 "ERROR: Couldn't find selected item in menu.~%") + (set! arg0 arg0) + (goto cfg-19) ) (cond ((>= arg1 0) @@ -1432,11 +1416,11 @@ (set! v1-6 (car (cdr v1-4))) ) ) + ((null? a0-1) + (set! v1-6 (car (last (-> s5-0 items)))) + ) (else - (if (null? a0-1) - (set! v1-6 (car (last (-> s5-0 items)))) - (set! v1-6 (car a0-1)) - ) + (set! v1-6 (car a0-1)) ) ) ) @@ -1462,12 +1446,10 @@ (+! a0-1 1) ) ) - (if (= v1-4 -1) - (begin - (format 0 "ERROR: Couldn't find selected item in menu.~%") - (set! arg0 arg0) - (goto cfg-25) - ) + (when (= v1-4 -1) + (format 0 "ERROR: Couldn't find selected item in menu.~%") + (set! arg0 arg0) + (goto cfg-25) ) (cond ((>= arg1 0) diff --git a/test/decompiler/reference/engine/dma/dma-disasm_REF.gc b/test/decompiler/reference/engine/dma/dma-disasm_REF.gc index 29513e9705..e8744f1ac5 100644 --- a/test/decompiler/reference/engine/dma/dma-disasm_REF.gc +++ b/test/decompiler/reference/engine/dma/dma-disasm_REF.gc @@ -707,169 +707,142 @@ (cond (end-condition ) - (else - (cond - ((or - (= (-> current-tag id) (dma-tag-id ref)) - (= (-> current-tag id) (dma-tag-id refs)) - (zero? (-> current-tag id)) - ) - (set! addr (-> current-tag addr)) - (set! qwc (the-as int (-> current-tag qwc))) - (when mode-2 - (let - ((v0-10 - (disasm-vif-tag (&-> data-2 vif0) 2 stream-2 (= mode-2 'details)) - ) - ) - (disasm-vif-tag - (the-as (pointer vif-tag) (+ addr (the-as uint v0-10))) - (the-as int (- (* qwc 4) (the-as uint (/ v0-10 4)))) - stream-2 - (= mode-2 'details) - ) + ((or + (= (-> current-tag id) (dma-tag-id ref)) + (= (-> current-tag id) (dma-tag-id refs)) + (zero? (-> current-tag id)) + ) + (set! addr (-> current-tag addr)) + (set! qwc (the-as int (-> current-tag qwc))) + (when mode-2 + (let + ((v0-10 + (disasm-vif-tag (&-> data-2 vif0) 2 stream-2 (= mode-2 'details)) ) ) - (set! - data-2 - (the-as dma-packet (&-> (the-as (pointer uint64) data-2) 2)) - ) - (if (= (-> current-tag id) (dma-tag-id refe)) - (set! end-condition #t) - ) - ) - (else - (cond - ((= (-> current-tag id) (dma-tag-id cnt)) - (set! addr (&-> (the-as (pointer uint64) data-2) 2)) - (set! qwc (the-as int (-> current-tag qwc))) - (if mode-2 - (disasm-vif-tag - (the-as - (pointer vif-tag) - (&-> (the-as (pointer uint64) data-2) 1) - ) - (the-as int (+ (* qwc 4) 2)) - stream-2 - (= mode-2 'details) - ) - ) - (set! - data-2 - (the-as - dma-packet - (+ (the-as uint data-2) (the-as uint (* (+ qwc 1) 16))) - ) - ) - data-2 - ) - ((= (-> current-tag id) (dma-tag-id next)) - (set! addr (&-> (the-as (pointer uint64) data-2) 2)) - (set! qwc (the-as int (-> current-tag qwc))) - (if mode-2 - (disasm-vif-tag - (the-as - (pointer vif-tag) - (&-> (the-as (pointer uint64) data-2) 1) - ) - (the-as int (+ (* qwc 4) 2)) - stream-2 - (= mode-2 'details) - ) - ) - (when (= data-2 (-> current-tag addr)) - (format stream-2 "ERROR: next tag creates infinite loop.~%") - (set! end-condition 'error) - ) - (set! data-2 (the-as dma-packet (-> current-tag addr))) - data-2 - ) - (else - (cond - ((= (-> current-tag id) (dma-tag-id call)) - (set! addr (&-> (the-as (pointer uint64) data-2) 2)) - (set! qwc (the-as int (-> current-tag qwc))) - (if mode-2 - (disasm-vif-tag - (the-as - (pointer vif-tag) - (&-> (the-as (pointer uint64) data-2) 1) - ) - (the-as int (+ (* qwc 4) 2)) - stream-2 - (= mode-2 'details) - ) - ) - (set! data-2 (the-as dma-packet (-> current-tag addr))) - (set! call-depth (+ call-depth 1)) - (cond - ((zero? call-depth) - (set! ra-1 (&+ addr qwc)) - (the-as (pointer uint64) ra-1) - ) - (else - (set! ra-2 (&+ addr qwc)) - (the-as (pointer uint64) ra-2) - ) - ) - ) - ((= (-> current-tag id) (dma-tag-id ret)) - (set! addr (&-> (the-as (pointer uint64) data-2) 2)) - (set! qwc (the-as int (-> current-tag qwc))) - (if mode-2 - (disasm-vif-tag - (the-as - (pointer vif-tag) - (&-> (the-as (pointer uint64) data-2) 1) - ) - (the-as int (+ (* qwc 4) 2)) - stream-2 - (= mode-2 'details) - ) - ) - (let ((v1-123 call-depth)) - (cond - ((zero? v1-123) - (set! data-2 (the-as dma-packet ra-1)) - data-2 - ) - ((= v1-123 1) - (set! data-2 (the-as dma-packet ra-2)) - data-2 - ) - (else - (set! end-condition #t) - ) - ) - ) - (set! call-depth (+ call-depth -1)) - call-depth - ) - ((= (-> current-tag id) (dma-tag-id end)) - (set! addr (&-> (the-as (pointer uint64) data-2) 2)) - (set! qwc (the-as int (-> current-tag qwc))) - (set! end-condition #t) - (if mode-2 - (disasm-vif-tag - (the-as - (pointer vif-tag) - (&-> (the-as (pointer uint64) data-2) 1) - ) - (the-as int (+ (* qwc 4) 2)) - stream-2 - (= mode-2 'details) - ) - ) - ) - (else - (format stream-2 "ERROR: Unknown DMA TAG command.~%") - (set! end-condition 'error) - ) - ) - ) + (disasm-vif-tag + (the-as (pointer vif-tag) (+ addr (the-as uint v0-10))) + (the-as int (- (* qwc 4) (the-as uint (/ v0-10 4)))) + stream-2 + (= mode-2 'details) ) ) ) + (set! + data-2 + (the-as dma-packet (&-> (the-as (pointer uint64) data-2) 2)) + ) + (if (= (-> current-tag id) (dma-tag-id refe)) + (set! end-condition #t) + ) + ) + ((= (-> current-tag id) (dma-tag-id cnt)) + (set! addr (&-> (the-as (pointer uint64) data-2) 2)) + (set! qwc (the-as int (-> current-tag qwc))) + (if mode-2 + (disasm-vif-tag + (the-as (pointer vif-tag) (&-> (the-as (pointer uint64) data-2) 1)) + (the-as int (+ (* qwc 4) 2)) + stream-2 + (= mode-2 'details) + ) + ) + (set! + data-2 + (the-as + dma-packet + (+ (the-as uint data-2) (the-as uint (* (+ qwc 1) 16))) + ) + ) + data-2 + ) + ((= (-> current-tag id) (dma-tag-id next)) + (set! addr (&-> (the-as (pointer uint64) data-2) 2)) + (set! qwc (the-as int (-> current-tag qwc))) + (if mode-2 + (disasm-vif-tag + (the-as (pointer vif-tag) (&-> (the-as (pointer uint64) data-2) 1)) + (the-as int (+ (* qwc 4) 2)) + stream-2 + (= mode-2 'details) + ) + ) + (when (= data-2 (-> current-tag addr)) + (format stream-2 "ERROR: next tag creates infinite loop.~%") + (set! end-condition 'error) + ) + (set! data-2 (the-as dma-packet (-> current-tag addr))) + data-2 + ) + ((= (-> current-tag id) (dma-tag-id call)) + (set! addr (&-> (the-as (pointer uint64) data-2) 2)) + (set! qwc (the-as int (-> current-tag qwc))) + (if mode-2 + (disasm-vif-tag + (the-as (pointer vif-tag) (&-> (the-as (pointer uint64) data-2) 1)) + (the-as int (+ (* qwc 4) 2)) + stream-2 + (= mode-2 'details) + ) + ) + (set! data-2 (the-as dma-packet (-> current-tag addr))) + (set! call-depth (+ call-depth 1)) + (cond + ((zero? call-depth) + (set! ra-1 (&+ addr qwc)) + (the-as (pointer uint64) ra-1) + ) + (else + (set! ra-2 (&+ addr qwc)) + (the-as (pointer uint64) ra-2) + ) + ) + ) + ((= (-> current-tag id) (dma-tag-id ret)) + (set! addr (&-> (the-as (pointer uint64) data-2) 2)) + (set! qwc (the-as int (-> current-tag qwc))) + (if mode-2 + (disasm-vif-tag + (the-as (pointer vif-tag) (&-> (the-as (pointer uint64) data-2) 1)) + (the-as int (+ (* qwc 4) 2)) + stream-2 + (= mode-2 'details) + ) + ) + (let ((v1-123 call-depth)) + (cond + ((zero? v1-123) + (set! data-2 (the-as dma-packet ra-1)) + data-2 + ) + ((= v1-123 1) + (set! data-2 (the-as dma-packet ra-2)) + data-2 + ) + (else + (set! end-condition #t) + ) + ) + ) + (set! call-depth (+ call-depth -1)) + call-depth + ) + ((= (-> current-tag id) (dma-tag-id end)) + (set! addr (&-> (the-as (pointer uint64) data-2) 2)) + (set! qwc (the-as int (-> current-tag qwc))) + (set! end-condition #t) + (if mode-2 + (disasm-vif-tag + (the-as (pointer vif-tag) (&-> (the-as (pointer uint64) data-2) 1)) + (the-as int (+ (* qwc 4) 2)) + stream-2 + (= mode-2 'details) + ) + ) + ) + (else + (format stream-2 "ERROR: Unknown DMA TAG command.~%") + (set! end-condition 'error) ) ) (+! total-qwc qwc) diff --git a/test/decompiler/reference/engine/game/fact-h_REF.gc b/test/decompiler/reference/engine/game/fact-h_REF.gc index 60aedd49d0..ec7405940e 100644 --- a/test/decompiler/reference/engine/game/fact-h_REF.gc +++ b/test/decompiler/reference/engine/game/fact-h_REF.gc @@ -250,17 +250,15 @@ ) ) (let ((ent (-> proc entity))) - (if (zero? obj) - (begin - (let ((go-func (the-as (function string none) enter-state)) - (a0-1 "memory") - ) - (set! (-> pp next-state) process-drawable-art-error) - (go-func a0-1) - ) - (set! obj (the-as fact-info 0)) - (goto cfg-10) + (when (zero? obj) + (let ((go-func (the-as (function string none) enter-state)) + (a0-1 "memory") + ) + (set! (-> pp next-state) process-drawable-art-error) + (go-func a0-1) ) + (set! obj (the-as fact-info 0)) + (goto cfg-10) ) (set! (-> obj process) proc) (set! tag (new 'static 'res-tag)) diff --git a/test/decompiler/reference/engine/geometry/geometry_REF.gc b/test/decompiler/reference/engine/geometry/geometry_REF.gc index d75885a9ca..c7712f0bac 100644 --- a/test/decompiler/reference/engine/geometry/geometry_REF.gc +++ b/test/decompiler/reference/engine/geometry/geometry_REF.gc @@ -770,95 +770,85 @@ (nop!) (label cfg-3) (b! (nonzero? v1-4) cfg-6 :delay (set! v1-5 (the-as uint (+ v1-4 -1)))) - (begin - (vector-segment-distance-point! - arg1 - (the-as vector (-> arg2 vector)) - (-> arg2 vector 1) - arg0 - ) - (goto cfg-24) + (vector-segment-distance-point! + arg1 + (the-as vector (-> arg2 vector)) + (-> arg2 vector 1) + arg0 ) + (goto cfg-24) (label cfg-6) (b! (nonzero? v1-5) cfg-9 :delay (set! v1-6 (the-as uint (+ v1-5 -1)))) - (begin - (vector-segment-distance-point! - arg1 - (-> arg2 vector 1) - (-> arg2 vector 2) - arg0 - ) - (goto cfg-24) + (vector-segment-distance-point! + arg1 + (-> arg2 vector 1) + (-> arg2 vector 2) + arg0 ) + (goto cfg-24) (label cfg-9) (b! (nonzero? v1-6) cfg-14 :delay (set! v1-7 (the-as uint (+ v1-6 -1)))) - (begin - (let - ((f30-0 - (vector-segment-distance-point! - arg1 - (-> arg2 vector 1) - (the-as vector (-> arg2 vector)) - arg0 - ) + (let + ((f30-0 + (vector-segment-distance-point! + arg1 + (-> arg2 vector 1) + (the-as vector (-> arg2 vector)) + arg0 ) - (s3-0 (new 'stack-no-clear 'vector)) - ) - (if - (< - (vector-segment-distance-point! - arg1 - (-> arg2 vector 1) - (-> arg2 vector 2) - s3-0 - ) - f30-0 - ) - (set! (-> arg0 quad) (-> s3-0 quad)) ) + (s3-0 (new 'stack-no-clear 'vector)) + ) + (if + (< + (vector-segment-distance-point! + arg1 + (-> arg2 vector 1) + (-> arg2 vector 2) + s3-0 + ) + f30-0 + ) + (set! (-> arg0 quad) (-> s3-0 quad)) ) - (goto cfg-24) ) + (goto cfg-24) (label cfg-14) (b! (nonzero? v1-7) cfg-17 :delay (set! v1-10 (the-as uint (+ v1-7 -1)))) - (begin - (vector-segment-distance-point! - arg1 - (-> arg2 vector 2) - (the-as vector (-> arg2 vector)) - arg0 - ) - (goto cfg-24) + (vector-segment-distance-point! + arg1 + (-> arg2 vector 2) + (the-as vector (-> arg2 vector)) + arg0 ) + (goto cfg-24) (label cfg-17) (b! (nonzero? v1-10) cfg-22) - (begin - (let - ((f30-1 - (vector-segment-distance-point! - arg1 - (the-as vector (-> arg2 vector)) - (-> arg2 vector 1) - arg0 - ) + (let + ((f30-1 + (vector-segment-distance-point! + arg1 + (the-as vector (-> arg2 vector)) + (-> arg2 vector 1) + arg0 ) - (s3-1 (new 'stack-no-clear 'vector)) - ) - (if - (< - (vector-segment-distance-point! - arg1 - (the-as vector (-> arg2 vector)) - (-> arg2 vector 2) - s3-1 - ) - f30-1 - ) - (set! (-> arg0 quad) (-> s3-1 quad)) ) + (s3-1 (new 'stack-no-clear 'vector)) + ) + (if + (< + (vector-segment-distance-point! + arg1 + (the-as vector (-> arg2 vector)) + (-> arg2 vector 2) + s3-1 + ) + f30-1 + ) + (set! (-> arg0 quad) (-> s3-1 quad)) ) - (goto cfg-24) ) + (goto cfg-24) (label cfg-22) (let ((f30-2 @@ -971,32 +961,25 @@ ) ) ) - (else - (cond - ((and (< f1-7 f2-3) (< f3-1 f2-3)) - (set! (-> arg0 x) (+ 4096.0 (-> arg1 x))) - (set! (-> arg0 z) (+ 4096.0 (-> arg1 z))) - (set! - (-> arg0 y) - (/ - (- (- f0-3 (* (-> arg2 x) (-> arg0 x))) (* (-> arg2 z) (-> arg0 z))) - (-> arg2 y) - ) - ) + ((and (< f1-7 f2-3) (< f3-1 f2-3)) + (set! (-> arg0 x) (+ 4096.0 (-> arg1 x))) + (set! (-> arg0 z) (+ 4096.0 (-> arg1 z))) + (set! + (-> arg0 y) + (/ + (- (- f0-3 (* (-> arg2 x) (-> arg0 x))) (* (-> arg2 z) (-> arg0 z))) + (-> arg2 y) ) - (else - (set! (-> arg0 x) (+ 4096.0 (-> arg1 x))) - (set! (-> arg0 y) (+ 4096.0 (-> arg1 y))) - (set! - (-> arg0 z) - (/ - (+ - (- (- (* (-> arg2 x) (-> arg0 x))) (* (-> arg2 y) (-> arg0 y))) - f0-3 - ) - (-> arg2 z) - ) - ) + ) + ) + (else + (set! (-> arg0 x) (+ 4096.0 (-> arg1 x))) + (set! (-> arg0 y) (+ 4096.0 (-> arg1 y))) + (set! + (-> arg0 z) + (/ + (+ (- (- (* (-> arg2 x) (-> arg0 x))) (* (-> arg2 y) (-> arg0 y))) f0-3) + (-> arg2 z) ) ) ) diff --git a/test/decompiler/reference/engine/geometry/vol-h_REF.gc b/test/decompiler/reference/engine/geometry/vol-h_REF.gc index 7e8d4909d8..99b83cdc3b 100644 --- a/test/decompiler/reference/engine/geometry/vol-h_REF.gc +++ b/test/decompiler/reference/engine/geometry/vol-h_REF.gc @@ -87,17 +87,15 @@ ) ) ) - (if (zero? (the-as vol-control gp-0)) - (begin - (let ((t9-1 (the-as (function object object) enter-state)) - (a0-1 "memory") - ) - (set! (-> pp next-state) process-drawable-art-error) - (t9-1 a0-1) - ) - (set! gp-0 0) - (goto cfg-13) + (when (zero? (the-as vol-control gp-0)) + (let ((t9-1 (the-as (function object object) enter-state)) + (a0-1 "memory") + ) + (set! (-> pp next-state) process-drawable-art-error) + (t9-1 a0-1) ) + (set! gp-0 0) + (goto cfg-13) ) (set! (-> (the-as vol-control gp-0) process) arg0) (let* diff --git a/test/decompiler/reference/engine/gfx/hw/gs_REF.gc b/test/decompiler/reference/engine/gfx/hw/gs_REF.gc index bcd3da3df8..484fe36639 100644 --- a/test/decompiler/reference/engine/gfx/hw/gs_REF.gc +++ b/test/decompiler/reference/engine/gfx/hw/gs_REF.gc @@ -36,17 +36,16 @@ ((= arg0 (gs-psm mt4)) 32 ) - (else - (if - (or - (= arg0 (gs-psm ct16)) - (= arg0 (gs-psm ct16s)) - (= arg0 (gs-psm mz16)) - (= arg0 (gs-psm mz16s)) - ) - 128 - 256 + ((or + (= arg0 (gs-psm ct16)) + (= arg0 (gs-psm ct16s)) + (= arg0 (gs-psm mz16)) + (= arg0 (gs-psm mz16s)) ) + 128 + ) + (else + 256 ) ) ) @@ -60,17 +59,16 @@ ((= arg0 (gs-psm mt4)) 128 ) - (else - (if - (or - (= arg0 (gs-psm ct16)) - (= arg0 (gs-psm ct16s)) - (= arg0 (gs-psm mz16)) - (= arg0 (gs-psm mz16s)) - ) - 64 - 32 + ((or + (= arg0 (gs-psm ct16)) + (= arg0 (gs-psm ct16s)) + (= arg0 (gs-psm mz16)) + (= arg0 (gs-psm mz16s)) ) + 64 + ) + (else + 32 ) ) ) diff --git a/test/decompiler/reference/engine/gfx/texture_REF.gc b/test/decompiler/reference/engine/gfx/texture_REF.gc index c896bd8458..d452b79a17 100644 --- a/test/decompiler/reference/engine/gfx/texture_REF.gc +++ b/test/decompiler/reference/engine/gfx/texture_REF.gc @@ -51,26 +51,18 @@ ;; definition for function texture-bpp (defun texture-bpp ((arg0 gs-psm)) - (let ((v1-0 arg0)) - (cond - ((= v1-0 (gs-psm mt8)) + (case arg0 + (((gs-psm mt8)) 8 ) - ((= v1-0 (gs-psm mt4)) - 4 - ) - (else - (if - (or - (= v1-0 (gs-psm ct16)) - (= v1-0 (gs-psm ct16s)) - (= v1-0 (gs-psm mz16)) - (= v1-0 (gs-psm mz16s)) - ) - 16 - 32 - ) - ) + (((gs-psm mt4)) + 4 + ) + (((gs-psm ct16) (gs-psm ct16s) (gs-psm mz16) (gs-psm mz16s)) + 16 + ) + (else + 32 ) ) ) @@ -569,107 +561,73 @@ ;; definition for function gs-page-width (defun gs-page-width ((arg0 gs-psm)) - (let ((v1-0 arg0)) - (cond - ((or - (= v1-0 (gs-psm ct32)) - (= v1-0 (gs-psm ct24)) - (= v1-0 (gs-psm ct16)) - (= v1-0 (gs-psm ct16s)) - ) + (case arg0 + (((gs-psm ct32) (gs-psm ct24) (gs-psm ct16) (gs-psm ct16s)) 64 ) - (else - (cond - ((or (= v1-0 (gs-psm mt8)) (= v1-0 (gs-psm mt4))) - 128 - ) - (else - (format #t "Warning: Unknown block width for psm ~D~%" arg0) - 1 - ) - ) - ) + (((gs-psm mt8) (gs-psm mt4)) + 128 + ) + (else + (format #t "Warning: Unknown block width for psm ~D~%" arg0) + 1 ) ) ) ;; definition for function gs-page-height (defun gs-page-height ((arg0 gs-psm)) - (let ((v1-0 arg0)) - (cond - ((or (= v1-0 (gs-psm ct32)) (= v1-0 (gs-psm ct24))) + (case arg0 + (((gs-psm ct32) (gs-psm ct24)) 32 ) - (else - (cond - ((or (= v1-0 (gs-psm ct16)) (= v1-0 (gs-psm ct16s))) - 64 - ) - ((= v1-0 (gs-psm mt8)) - 64 - ) - ((= v1-0 (gs-psm mt4)) - 128 - ) - (else - (format #t "Warning: Unknown block width for psm ~D~%" arg0) - 1 - ) - ) - ) + (((gs-psm ct16) (gs-psm ct16s)) + 64 + ) + (((gs-psm mt8)) + 64 + ) + (((gs-psm mt4)) + 128 + ) + (else + (format #t "Warning: Unknown block width for psm ~D~%" arg0) + 1 ) ) ) ;; definition for function gs-block-width (defun gs-block-width ((arg0 gs-psm)) - (let ((v1-0 arg0)) - (cond - ((or (= v1-0 (gs-psm ct32)) (= v1-0 (gs-psm ct24))) + (case arg0 + (((gs-psm ct32) (gs-psm ct24)) 8 ) - (else - (cond - ((or (= v1-0 (gs-psm ct16)) (= v1-0 (gs-psm ct16s)) (= v1-0 (gs-psm mt8))) - 16 - ) - ((= v1-0 (gs-psm mt4)) - 32 - ) - (else - (format #t "Warning: Unknown block width for psm ~D~%" arg0) - 1 - ) - ) - ) + (((gs-psm ct16) (gs-psm ct16s) (gs-psm mt8)) + 16 + ) + (((gs-psm mt4)) + 32 + ) + (else + (format #t "Warning: Unknown block width for psm ~D~%" arg0) + 1 ) ) ) ;; definition for function gs-block-height (defun gs-block-height ((arg0 gs-psm)) - (let ((v1-0 arg0)) - (cond - ((or - (= v1-0 (gs-psm ct32)) - (= v1-0 (gs-psm ct24)) - (= v1-0 (gs-psm ct16)) - (= v1-0 (gs-psm ct16s)) - ) + (case arg0 + (((gs-psm ct32) (gs-psm ct24) (gs-psm ct16) (gs-psm ct16s)) 8 ) - (else - (cond - ((or (= v1-0 (gs-psm mt8)) (= v1-0 (gs-psm mt4))) - 16 - ) - (else - (format #t "Warning: Unknown block width for psm ~D~%" arg0) - 1 - ) - ) - ) + (((gs-psm mt8) (gs-psm mt4)) + 16 + ) + (else + (format #t "Warning: Unknown block width for psm ~D~%" arg0) + 1 ) ) ) @@ -742,75 +700,69 @@ ;; definition for method 22 of type texture-pool (defmethod lookup-boot-common-id texture-pool ((obj texture-pool) (tpage-id int)) - (let ((v1-0 tpage-id)) - (cond - ((= v1-0 1032) + (case tpage-id + ((1032) 0 ) - ((= v1-0 1119) - 1 - ) - ((= v1-0 1478) - 2 - ) - ((= v1-0 1485) - 3 - ) - ((= v1-0 1486) - 4 - ) - ((= v1-0 1487) - 5 - ) - (else - (cond - ((or (= v1-0 635) (= v1-0 1609)) - 6 - ) - ((= v1-0 636) - 7 - ) - ((= v1-0 637) - 8 - ) - ((= v1-0 752) - 9 - ) - ((= v1-0 1598) - 10 - ) - ((= v1-0 1599) - 11 - ) - ((= v1-0 1600) - 12 - ) - ((= v1-0 1601) - 13 - ) - ((= v1-0 1602) - 14 - ) - ((= v1-0 1603) - 15 - ) - ((= v1-0 1604) - 16 - ) - ((= v1-0 1605) - 17 - ) - ((= v1-0 1606) - 18 - ) - ((= v1-0 1607) - 19 - ) - (else - -1 - ) - ) - ) + ((1119) + 1 + ) + ((1478) + 2 + ) + ((1485) + 3 + ) + ((1486) + 4 + ) + ((1487) + 5 + ) + ((635 1609) + 6 + ) + ((636) + 7 + ) + ((637) + 8 + ) + ((752) + 9 + ) + ((1598) + 10 + ) + ((1599) + 11 + ) + ((1600) + 12 + ) + ((1601) + 13 + ) + ((1602) + 14 + ) + ((1603) + 15 + ) + ((1604) + 16 + ) + ((1605) + 17 + ) + ((1606) + 18 + ) + ((1607) + 19 + ) + (else + -1 ) ) ) @@ -1069,30 +1021,23 @@ (set! chunks-to-upload-count (+ chunks-to-upload-count 1)) ) ) - (else - (cond - ((= (-> pool ids current-dest-chunk) tex-id) - (upload-vram-data - dma-buf - (the-as - int - (* - (+ tex-dest-base-chunk (the-as uint first-chunk-idx-to-upload)) - 64 - ) - ) - (&+ tex-data (shl first-chunk-idx-to-upload 14)) - (* chunks-to-upload-count 32) - ) - (+! total-upload-size chunks-to-upload-count) - (set! chunks-to-upload-count 0) - 0 - ) - (else - (set! (-> pool ids current-dest-chunk) tex-id) - (set! chunks-to-upload-count (+ chunks-to-upload-count 1)) + ((= (-> pool ids current-dest-chunk) tex-id) + (upload-vram-data + dma-buf + (the-as + int + (* (+ tex-dest-base-chunk (the-as uint first-chunk-idx-to-upload)) 64) ) + (&+ tex-data (shl first-chunk-idx-to-upload 14)) + (* chunks-to-upload-count 32) ) + (+! total-upload-size chunks-to-upload-count) + (set! chunks-to-upload-count 0) + 0 + ) + (else + (set! (-> pool ids current-dest-chunk) tex-id) + (set! chunks-to-upload-count (+ chunks-to-upload-count 1)) ) ) ) @@ -1223,16 +1168,12 @@ (+! modified-chunk-count 1) ) ) + ((= (-> pool ids vram-chunk) page-id) + (set! modified-chunk-count 0) + ) (else - (cond - ((= (-> pool ids vram-chunk) page-id) - (set! modified-chunk-count 0) - ) - (else - (set! (-> pool ids vram-chunk) page-id) - (+! modified-chunk-count 1) - ) - ) + (set! (-> pool ids vram-chunk) page-id) + (+! modified-chunk-count 1) ) ) ) @@ -1297,30 +1238,23 @@ (set! chunks-to-upload-count (+ chunks-to-upload-count 1)) ) ) - (else - (cond - ((or (= (-> pool ids current-dest-chunk) page-id) (not allow-cached)) - (upload-vram-data - dma-buf - (the-as - int - (* - (+ tex-dest-base-chunk (the-as uint first-chunk-idx-to-upload)) - 64 - ) - ) - (&+ tex-data (shl first-chunk-idx-to-upload 14)) - (* chunks-to-upload-count 32) - ) - (+! total-upload-size chunks-to-upload-count) - (set! chunks-to-upload-count 0) - 0 - ) - (else - (set! (-> pool ids current-dest-chunk) page-id) - (set! chunks-to-upload-count (+ chunks-to-upload-count 1)) + ((or (= (-> pool ids current-dest-chunk) page-id) (not allow-cached)) + (upload-vram-data + dma-buf + (the-as + int + (* (+ tex-dest-base-chunk (the-as uint first-chunk-idx-to-upload)) 64) ) + (&+ tex-data (shl first-chunk-idx-to-upload 14)) + (* chunks-to-upload-count 32) ) + (+! total-upload-size chunks-to-upload-count) + (set! chunks-to-upload-count 0) + 0 + ) + (else + (set! (-> pool ids current-dest-chunk) page-id) + (set! chunks-to-upload-count (+ chunks-to-upload-count 1)) ) ) ) @@ -3103,11 +3037,9 @@ (local-vars (a0-2 int)) (let ((v1-0 *texture-page-dir*)) (dotimes (a0-1 (-> v1-0 length)) - (if (= arg0 (-> v1-0 entries a0-1 page)) - (begin - (set! a0-2 a0-1) - (goto cfg-7) - ) + (when (= arg0 (-> v1-0 entries a0-1 page)) + (set! a0-2 a0-1) + (goto cfg-7) ) ) (set! a0-2 -1) diff --git a/test/decompiler/reference/engine/math/trigonometry_REF.gc b/test/decompiler/reference/engine/math/trigonometry_REF.gc index 0467eb7cbe..42e3ba6637 100644 --- a/test/decompiler/reference/engine/math/trigonometry_REF.gc +++ b/test/decompiler/reference/engine/math/trigonometry_REF.gc @@ -540,32 +540,28 @@ ((= arg1 0.0) (* 1.5707963 (sign arg0)) ) + ((and (< arg0 0.0) (< arg1 0.0)) + (let ((f30-1 MINUS_PI) + (f0-6 (/ arg0 arg1)) + ) + (+ f30-1 (atan-series-rad (/ (+ -1.0 f0-6) (+ 1.0 f0-6)))) + ) + ) + ((< arg0 0.0) + (let ((f0-14 (- (/ arg0 arg1)))) + (- (atan-series-rad (/ (+ -1.0 f0-14) (+ 1.0 f0-14)))) + ) + ) + ((< arg1 0.0) + (let ((f30-2 PI) + (f0-22 (- (/ arg0 arg1))) + ) + (- f30-2 (atan-series-rad (/ (+ -1.0 f0-22) (+ 1.0 f0-22)))) + ) + ) (else - (cond - ((and (< arg0 0.0) (< arg1 0.0)) - (let ((f30-1 MINUS_PI) - (f0-6 (/ arg0 arg1)) - ) - (+ f30-1 (atan-series-rad (/ (+ -1.0 f0-6) (+ 1.0 f0-6)))) - ) - ) - ((< arg0 0.0) - (let ((f0-14 (- (/ arg0 arg1)))) - (- (atan-series-rad (/ (+ -1.0 f0-14) (+ 1.0 f0-14)))) - ) - ) - ((< arg1 0.0) - (let ((f30-2 PI) - (f0-22 (- (/ arg0 arg1))) - ) - (- f30-2 (atan-series-rad (/ (+ -1.0 f0-22) (+ 1.0 f0-22)))) - ) - ) - (else - (let ((f0-28 (/ arg0 arg1))) - (atan-series-rad (/ (+ -1.0 f0-28) (+ 1.0 f0-28))) - ) - ) + (let ((f0-28 (/ arg0 arg1))) + (atan-series-rad (/ (+ -1.0 f0-28) (+ 1.0 f0-28))) ) ) ) @@ -666,21 +662,17 @@ ((and (= arg1 0.0) (= arg0 0.0)) 0.0 ) + ((and (< arg1 0.0) (< arg0 0.0)) + (+ -32768.0 (atan0 (- arg0) (- arg1))) + ) + ((< arg0 0.0) + (- (atan0 (- arg0) arg1)) + ) + ((< arg1 0.0) + (- 32768.0 (atan0 arg0 (- arg1))) + ) (else - (cond - ((and (< arg1 0.0) (< arg0 0.0)) - (+ -32768.0 (atan0 (- arg0) (- arg1))) - ) - ((< arg0 0.0) - (- (atan0 (- arg0) arg1)) - ) - ((< arg1 0.0) - (- 32768.0 (atan0 arg0 (- arg1))) - ) - (else - (atan0 arg0 arg1) - ) - ) + (atan0 arg0 arg1) ) ) ) diff --git a/test/decompiler/reference/engine/nav/navigate-h_REF.gc b/test/decompiler/reference/engine/nav/navigate-h_REF.gc index 6a2109816f..5f7eea4ada 100644 --- a/test/decompiler/reference/engine/nav/navigate-h_REF.gc +++ b/test/decompiler/reference/engine/nav/navigate-h_REF.gc @@ -558,17 +558,15 @@ ) ) ) - (if (zero? obj) - (begin - (let ((t9-1 (the-as function enter-state)) - (a0-1 "memory") - ) - (set! (-> pp next-state) process-drawable-art-error) - ((the-as (function string none) t9-1) a0-1) - ) - (set! obj (the-as nav-control 0)) - (goto cfg-4) + (when (zero? obj) + (let ((t9-1 (the-as function enter-state)) + (a0-1 "memory") + ) + (set! (-> pp next-state) process-drawable-art-error) + ((the-as (function string none) t9-1) a0-1) ) + (set! obj (the-as nav-control 0)) + (goto cfg-4) ) (set! (-> obj max-spheres) sphere-count) (set! (-> obj flags) (nav-control-flags bit8 bit13)) diff --git a/test/decompiler/reference/engine/nav/path-h_REF.gc b/test/decompiler/reference/engine/nav/path-h_REF.gc index 65b2e517f5..5210d2736b 100644 --- a/test/decompiler/reference/engine/nav/path-h_REF.gc +++ b/test/decompiler/reference/engine/nav/path-h_REF.gc @@ -84,17 +84,15 @@ (object-new allocation type-to-make (the-as int (-> type-to-make size))) ) ) - (if (zero? obj) - (begin - (let ((t9-1 (the-as function enter-state)) - (a0-1 "memory") - ) - (set! (-> pp next-state) process-drawable-art-error) - ((the-as (function string none) t9-1) a0-1) - ) - (set! obj (the-as path-control 0)) - (goto cfg-9) + (when (zero? obj) + (let ((t9-1 (the-as function enter-state)) + (a0-1 "memory") + ) + (set! (-> pp next-state) process-drawable-art-error) + ((the-as (function string none) t9-1) a0-1) ) + (set! obj (the-as path-control 0)) + (goto cfg-9) ) (set! (-> obj process) (the-as process-drawable proc)) (set! (-> obj name) name) diff --git a/test/decompiler/reference/engine/nav/path_REF.gc b/test/decompiler/reference/engine/nav/path_REF.gc index 24b5c00320..d92cee38b1 100644 --- a/test/decompiler/reference/engine/nav/path_REF.gc +++ b/test/decompiler/reference/engine/nav/path_REF.gc @@ -126,15 +126,15 @@ ((>= f0-3 (the float (+ a1-1 -1))) (set! (-> arg0 quad) (-> obj cverts (+ a1-1 -1) quad)) ) + ((or (= arg2 'exact) (= f0-3 arg1)) + (set! (-> arg0 quad) (-> obj cverts (the int f0-3) quad)) + ) (else - (if (or (= arg2 'exact) (= f0-3 arg1)) - (set! (-> arg0 quad) (-> obj cverts (the int f0-3) quad)) - (vector-lerp! - arg0 - (-> obj cverts (the int f0-3)) - (-> obj cverts (the int (+ 1.0 f0-3))) - (- arg1 f0-3) - ) + (vector-lerp! + arg0 + (-> obj cverts (the int f0-3)) + (-> obj cverts (the int (+ 1.0 f0-3))) + (- arg1 f0-3) ) ) ) @@ -457,7 +457,3 @@ 0 (none) ) - - - - diff --git a/test/decompiler/reference/engine/target/surface-h_REF.gc b/test/decompiler/reference/engine/target/surface-h_REF.gc index 6b60a59225..353425a313 100644 --- a/test/decompiler/reference/engine/target/surface-h_REF.gc +++ b/test/decompiler/reference/engine/target/surface-h_REF.gc @@ -138,15 +138,14 @@ ) (-> src1 hook v1-3) ) - (else - (if - (and - (nonzero? (-> src0 hook v1-3)) - (!= (-> src0 hook v1-3) nothing) - ) - (-> src0 hook v1-3) - nothing + ((and + (nonzero? (-> src0 hook v1-3)) + (!= (-> src0 hook v1-3) nothing) ) + (-> src0 hook v1-3) + ) + (else + nothing ) ) ) @@ -170,15 +169,14 @@ ) (-> src1 hook v1-3) ) - (else - (if - (and - (nonzero? (-> src0 hook v1-3)) - (!= (-> src0 hook v1-3) nothing) - ) - (-> src0 hook v1-3) - nothing + ((and + (nonzero? (-> src0 hook v1-3)) + (!= (-> src0 hook v1-3) nothing) ) + (-> src0 hook v1-3) + ) + (else + nothing ) ) ) diff --git a/test/decompiler/reference/kernel/gcommon_REF.gc b/test/decompiler/reference/kernel/gcommon_REF.gc index db39a64e7a..0738b17965 100644 --- a/test/decompiler/reference/kernel/gcommon_REF.gc +++ b/test/decompiler/reference/kernel/gcommon_REF.gc @@ -562,9 +562,8 @@ (format #t "#(") (cond ((type-type? (-> obj content-type) integer) - (let ((content-type-sym (-> obj content-type symbol))) - (cond - ((= content-type-sym 'int32) + (case (-> obj content-type symbol) + (('int32) (dotimes (s5-0 (-> obj length)) (format #t (if (zero? s5-0) "~D" @@ -574,120 +573,111 @@ ) ) ) - ((= content-type-sym 'uint32) - (dotimes (s5-1 (-> obj length)) - (format #t (if (zero? s5-1) - "~D" - " ~D" - ) - (-> (the-as (array uint32) obj) s5-1) - ) + (('uint32) + (dotimes (s5-1 (-> obj length)) + (format #t (if (zero? s5-1) + "~D" + " ~D" + ) + (-> (the-as (array uint32) obj) s5-1) ) ) - ((= content-type-sym 'int64) - (dotimes (s5-2 (-> obj length)) - (format #t (if (zero? s5-2) - "~D" - " ~D" - ) - (-> (the-as (array int64) obj) s5-2) - ) + ) + (('int64) + (dotimes (s5-2 (-> obj length)) + (format #t (if (zero? s5-2) + "~D" + " ~D" + ) + (-> (the-as (array int64) obj) s5-2) ) ) - ((= content-type-sym 'uint64) - (dotimes (s5-3 (-> obj length)) - (format #t (if (zero? s5-3) - "#x~X" - " #x~X" - ) - (-> (the-as (array uint64) obj) s5-3) - ) + ) + (('uint64) + (dotimes (s5-3 (-> obj length)) + (format #t (if (zero? s5-3) + "#x~X" + " #x~X" + ) + (-> (the-as (array uint64) obj) s5-3) ) ) - ((= content-type-sym 'int8) - (dotimes (s5-4 (-> obj length)) - (format #t (if (zero? s5-4) - "~D" - " ~D" - ) - (-> (the-as (array int8) obj) s5-4) - ) + ) + (('int8) + (dotimes (s5-4 (-> obj length)) + (format #t (if (zero? s5-4) + "~D" + " ~D" + ) + (-> (the-as (array int8) obj) s5-4) ) ) - ((= content-type-sym 'uint8) - (dotimes (s5-5 (-> obj length)) - (format #t (if (zero? s5-5) - "~D" - " ~D" - ) - (-> (the-as (array uint8) obj) s5-5) - ) + ) + (('uint8) + (dotimes (s5-5 (-> obj length)) + (format #t (if (zero? s5-5) + "~D" + " ~D" + ) + (-> (the-as (array uint8) obj) s5-5) ) ) - ((= content-type-sym 'int16) - (dotimes (s5-6 (-> obj length)) - (format #t (if (zero? s5-6) - "~D" - " ~D" - ) - (-> (the-as (array int16) obj) s5-6) - ) + ) + (('int16) + (dotimes (s5-6 (-> obj length)) + (format #t (if (zero? s5-6) + "~D" + " ~D" + ) + (-> (the-as (array int16) obj) s5-6) ) ) - ((= content-type-sym 'uint16) - (dotimes (s5-7 (-> obj length)) - (format #t (if (zero? s5-7) - "~D" - " ~D" - ) - (-> (the-as (array uint16) obj) s5-7) - ) + ) + (('uint16) + (dotimes (s5-7 (-> obj length)) + (format #t (if (zero? s5-7) + "~D" + " ~D" + ) + (-> (the-as (array uint16) obj) s5-7) ) ) - (else - (cond - ((or (= content-type-sym 'uint128) (= content-type-sym 'int128)) - (dotimes (s5-8 (-> obj length)) - (format #t (if (zero? s5-8) - "#x~X" - " #x~X" - ) - (-> (the-as (array uint128) obj) s5-8) - ) - ) - ) - (else - (dotimes (s5-9 (-> obj length)) - (format #t (if (zero? s5-9) - "~D" - " ~D" - ) - (-> (the-as (array int32) obj) s5-9) - ) - ) - ) + ) + (('uint128 'int128) + (dotimes (s5-8 (-> obj length)) + (format #t (if (zero? s5-8) + "#x~X" + " #x~X" + ) + (-> (the-as (array uint128) obj) s5-8) + ) + ) + ) + (else + (dotimes (s5-9 (-> obj length)) + (format #t (if (zero? s5-9) + "~D" + " ~D" + ) + (-> (the-as (array int32) obj) s5-9) ) ) ) ) ) - (else - (cond - ((= (-> obj content-type) float) - (dotimes (s5-10 (-> obj length)) - (if (zero? s5-10) - (format #t "~f" (-> (the-as (array float) obj) s5-10)) - (format #t " ~f" (-> (the-as (array float) obj) s5-10)) - ) - ) + ((= (-> obj content-type) float) + (dotimes (s5-10 (-> obj length)) + (if (zero? s5-10) + (format #t "~f" (-> (the-as (array float) obj) s5-10)) + (format #t " ~f" (-> (the-as (array float) obj) s5-10)) ) - (else - (dotimes (s5-11 (-> obj length)) - (if (zero? s5-11) - (format #t "~A" (-> (the-as (array basic) obj) s5-11)) - (format #t " ~A" (-> (the-as (array basic) obj) s5-11)) - ) - ) + ) + ) + (else + (dotimes (s5-11 (-> obj length)) + (if (zero? s5-11) + (format #t "~A" (-> (the-as (array basic) obj) s5-11)) + (format #t " ~A" (-> (the-as (array basic) obj) s5-11)) ) ) ) @@ -706,82 +696,67 @@ (format #t "~Tdata[~D]: @ #x~X~%" (-> obj allocated-length) (-> obj data)) (cond ((type-type? (-> obj content-type) integer) - (let ((content-type-sym (-> obj content-type symbol))) - (cond - ((= content-type-sym 'int32) + (case (-> obj content-type symbol) + (('int32) (dotimes (s5-0 (-> obj length)) (format #t "~T [~D] ~D~%" s5-0 (-> (the-as (array int32) obj) s5-0)) ) ) - ((= content-type-sym 'uint32) - (dotimes (s5-1 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-1 (-> (the-as (array uint32) obj) s5-1)) - ) + (('uint32) + (dotimes (s5-1 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-1 (-> (the-as (array uint32) obj) s5-1)) ) - ((= content-type-sym 'int64) - (dotimes (s5-2 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-2 (-> (the-as (array int64) obj) s5-2)) - ) + ) + (('int64) + (dotimes (s5-2 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-2 (-> (the-as (array int64) obj) s5-2)) ) - ((= content-type-sym 'uint64) - (dotimes (s5-3 (-> obj length)) - (format #t "~T [~D] #x~X~%" s5-3 (-> (the-as (array uint64) obj) s5-3)) - ) + ) + (('uint64) + (dotimes (s5-3 (-> obj length)) + (format #t "~T [~D] #x~X~%" s5-3 (-> (the-as (array uint64) obj) s5-3)) ) - ((= content-type-sym 'int8) - (dotimes (s5-4 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-4 (-> (the-as (array int8) obj) s5-4)) - ) + ) + (('int8) + (dotimes (s5-4 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-4 (-> (the-as (array int8) obj) s5-4)) ) - ((= content-type-sym 'uint8) - (dotimes (s5-5 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-5 (-> (the-as (array int8) obj) s5-5)) - ) + ) + (('uint8) + (dotimes (s5-5 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-5 (-> (the-as (array int8) obj) s5-5)) ) - ((= content-type-sym 'int16) - (dotimes (s5-6 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-6 (-> (the-as (array int16) obj) s5-6)) - ) + ) + (('int16) + (dotimes (s5-6 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-6 (-> (the-as (array int16) obj) s5-6)) ) - ((= content-type-sym 'uint16) - (dotimes (s5-7 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-7 (-> (the-as (array uint16) obj) s5-7)) - ) + ) + (('uint16) + (dotimes (s5-7 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-7 (-> (the-as (array uint16) obj) s5-7)) ) - (else - (cond - ((or (= content-type-sym 'int128) (= content-type-sym 'uint128)) - (dotimes (s5-8 (-> obj length)) - (format - #t - "~T [~D] #x~X~%" - s5-8 - (-> (the-as (array uint128) obj) s5-8) - ) - ) - ) - (else - (dotimes (s5-9 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-9 (-> (the-as (array int32) obj) s5-9)) - ) - ) - ) + ) + (('int128 'uint128) + (dotimes (s5-8 (-> obj length)) + (format #t "~T [~D] #x~X~%" s5-8 (-> (the-as (array uint128) obj) s5-8)) + ) + ) + (else + (dotimes (s5-9 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-9 (-> (the-as (array int32) obj) s5-9)) ) ) ) ) + ((= (-> obj content-type) float) + (dotimes (s5-10 (-> obj length)) + (format #t "~T [~D] ~f~%" s5-10 (-> (the-as (array float) obj) s5-10)) + ) + ) (else - (cond - ((= (-> obj content-type) float) - (dotimes (s5-10 (-> obj length)) - (format #t "~T [~D] ~f~%" s5-10 (-> (the-as (array float) obj) s5-10)) - ) - ) - (else - (dotimes (s5-11 (-> obj length)) - (format #t "~T [~D] ~A~%" s5-11 (-> (the-as (array basic) obj) s5-11)) - ) - ) + (dotimes (s5-11 (-> obj length)) + (format #t "~T [~D] ~A~%" s5-11 (-> (the-as (array basic) obj) s5-11)) ) ) ) @@ -1021,96 +996,46 @@ ((and allow-false (not obj)) #t ) - (else + ((= expected-type structure) (cond - ((= expected-type structure) - (cond - ((nonzero? (logand (the-as int obj) 15)) - (if name - (format - print-dest - "ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%" - obj - name - expected-type - ) - ) - #f - ) - ((or (not in-goal-mem) (begin - (let ((v1-10 #x8000)) - (.daddu v1-11 v1-10 s7-0) - ) - (< (the-as uint obj) (the-as uint v1-11)) - ) - ) - (if name - (format - print-dest - "ERROR: object #x~X ~S is not a valid object of type '~A' (bad address)~%" - obj - name - expected-type - ) - ) - #f - ) - (else - #t + ((nonzero? (logand (the-as int obj) 15)) + (if name + (format + print-dest + "ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%" + obj + name + expected-type ) ) + #f ) - ((= expected-type pair) - (cond - ((!= (logand (the-as int obj) 7) 2) - (if name - (format - print-dest - "ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%" - obj - name - expected-type - ) - ) - #f - ) - ((not in-goal-mem) - (if name - (format - print-dest - "ERROR: object #x~X ~S is not a valid object of type '~A' (bad address)~%" - obj - name - expected-type - ) - ) - #f - ) - (else - #t + ((or (not in-goal-mem) (begin + (let ((v1-10 #x8000)) + (.daddu v1-11 v1-10 s7-0) + ) + (< (the-as uint obj) (the-as uint v1-11)) + ) + ) + (if name + (format + print-dest + "ERROR: object #x~X ~S is not a valid object of type '~A' (bad address)~%" + obj + name + expected-type ) ) + #f ) - ((= expected-type binteger) - (cond - ((zero? (logand (the-as int obj) 7)) - #t - ) - (else - (if name - (format - print-dest - "ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%" - obj - name - expected-type - ) - ) - #f - ) - ) + (else + #t ) - ((!= (logand (the-as int obj) 7) 4) + ) + ) + ((= expected-type pair) + (cond + ((!= (logand (the-as int obj) 7) 2) (if name (format print-dest @@ -1134,96 +1059,135 @@ ) #f ) - ((and (= expected-type type) (!= (rtype-of obj) type)) + (else + #t + ) + ) + ) + ((= expected-type binteger) + (cond + ((zero? (logand (the-as int obj) 7)) + #t + ) + (else (if name (format print-dest - "ERROR: object #x~X ~S is not a valid object of type '~A' (invalid type #x~X)~%" + "ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%" + obj + name + expected-type + ) + ) + #f + ) + ) + ) + ((!= (logand (the-as int obj) 7) 4) + (if name + (format + print-dest + "ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%" + obj + name + expected-type + ) + ) + #f + ) + ((not in-goal-mem) + (if name + (format + print-dest + "ERROR: object #x~X ~S is not a valid object of type '~A' (bad address)~%" + obj + name + expected-type + ) + ) + #f + ) + ((and (= expected-type type) (!= (rtype-of obj) type)) + (if name + (format + print-dest + "ERROR: object #x~X ~S is not a valid object of type '~A' (invalid type #x~X)~%" + obj + name + expected-type + (rtype-of obj) + ) + ) + #f + ) + ((and (!= expected-type type) (not (valid? (rtype-of obj) type #f #t 0))) + (if name + (format + print-dest + "ERROR: object #x~X ~S is not a valid object of type '~A' (invalid type #x~X)~%" + obj + name + expected-type + (rtype-of obj) + ) + ) + #f + ) + ((not (type-type? (rtype-of obj) expected-type)) + (if name + (format + print-dest + "ERROR: object #x~X ~S is not a valid object of type '~A' (is type '~A' instead)~%" + obj + name + expected-type + (rtype-of obj) + ) + ) + #f + ) + ((= expected-type symbol) + (let ((v1-43 #x8000)) + (.daddu v1-44 v1-43 s7-0) + ) + (cond + ((>= (the-as uint obj) (the-as uint v1-44)) + (if name + (format + print-dest + "ERROR: object #x~X ~S is not a valid object of type '~A' (not in symbol table)~%" obj name expected-type - (rtype-of obj) ) ) #f ) (else - (cond - ((and - (!= expected-type type) - (not (valid? (rtype-of obj) type #f #t 0)) - ) - (if name - (format - print-dest - "ERROR: object #x~X ~S is not a valid object of type '~A' (invalid type #x~X)~%" - obj - name - expected-type - (rtype-of obj) - ) - ) - #f - ) - ((not (type-type? (rtype-of obj) expected-type)) - (if name - (format - print-dest - "ERROR: object #x~X ~S is not a valid object of type '~A' (is type '~A' instead)~%" - obj - name - expected-type - (rtype-of obj) - ) - ) - #f - ) - ((= expected-type symbol) - (let ((v1-43 #x8000)) - (.daddu v1-44 v1-43 s7-0) - ) - (cond - ((>= (the-as uint obj) (the-as uint v1-44)) - (if name - (format - print-dest - "ERROR: object #x~X ~S is not a valid object of type '~A' (not in symbol table)~%" - obj - name - expected-type - ) - ) - #f - ) - (else - #t - ) - ) - ) - ((begin - (let ((v1-47 #x8000)) - (.daddu v1-48 v1-47 s7-0) - ) - (< (the-as uint obj) (the-as uint v1-48)) - ) - (if name - (format - print-dest - "ERROR: object #x~X ~S is not a valid object of type '~A' (inside symbol table)~%" - obj - name - expected-type - ) - ) - #f - ) - (else - #t - ) - ) + #t ) ) ) + ((begin + (let ((v1-47 #x8000)) + (.daddu v1-48 v1-47 s7-0) + ) + (< (the-as uint obj) (the-as uint v1-48)) + ) + (if name + (format + print-dest + "ERROR: object #x~X ~S is not a valid object of type '~A' (inside symbol table)~%" + obj + name + expected-type + ) + ) + #f + ) + (else + #t + ) ) ) ) diff --git a/test/decompiler/reference/kernel/gkernel_REF.gc b/test/decompiler/reference/kernel/gkernel_REF.gc index cdb2dc810e..5c97fd1cb3 100644 --- a/test/decompiler/reference/kernel/gkernel_REF.gc +++ b/test/decompiler/reference/kernel/gkernel_REF.gc @@ -722,15 +722,15 @@ ) ) ) - (else - (if (-> arg0 next) - (&- - (the-as pointer (-> arg0 next process)) - (the-as uint (&+ (-> obj heap base) 4)) - ) - (&- (-> obj heap top) (the-as uint (-> obj heap base))) + ((-> arg0 next) + (&- + (the-as pointer (-> arg0 next process)) + (the-as uint (&+ (-> obj heap base) 4)) ) ) + (else + (&- (-> obj heap top) (the-as uint (-> obj heap base))) + ) ) ) @@ -1641,11 +1641,11 @@ ((or (not a3-1) (not v1-4)) (return 0) ) + ((= a3-1 a2-1) + (set! (-> a3-1 4) (the-as process-tree (-> arg0 brother))) + ) (else - (if (= a3-1 a2-1) - (set! (-> a3-1 4) (the-as process-tree (-> arg0 brother))) - (set! (-> a3-1 3) (the-as process-tree (-> arg0 brother))) - ) + (set! (-> a3-1 3) (the-as process-tree (-> arg0 brother))) ) ) (cond diff --git a/test/decompiler/reference/kernel/gstring_REF.gc b/test/decompiler/reference/kernel/gstring_REF.gc index 4b7e5a9891..166efc62e0 100644 --- a/test/decompiler/reference/kernel/gstring_REF.gc +++ b/test/decompiler/reference/kernel/gstring_REF.gc @@ -540,25 +540,24 @@ ) ) ) + ((and + (>= (-> next-char-2 0) (the-as uint 97)) + (>= (the-as uint 102) (-> next-char-2 0)) + ) + (set! + result + (the-as + int + (+ (+ (-> next-char-2 0) -87) (the-as uint (* result 16))) + ) + ) + ) (else - (if - (and - (>= (-> next-char-2 0) (the-as uint 97)) - (>= (the-as uint 102) (-> next-char-2 0)) - ) - (set! - result - (the-as - int - (+ (+ (-> next-char-2 0) -87) (the-as uint (* result 16))) - ) - ) - (set! - result - (the-as - int - (+ (+ (-> next-char-2 0) -48) (the-as uint (* result 16))) - ) + (set! + result + (the-as + int + (+ (+ (-> next-char-2 0) -48) (the-as uint (* result 16))) ) ) ) diff --git a/test/decompiler/test_FormExpressionBuildLong.cpp b/test/decompiler/test_FormExpressionBuildLong.cpp index b116a91fdf..e5ee5a82ae 100644 --- a/test/decompiler/test_FormExpressionBuildLong.cpp +++ b/test/decompiler/test_FormExpressionBuildLong.cpp @@ -541,9 +541,8 @@ TEST_F(FormRegressionTest, ExprArrayMethod2) { " (format #t \"#(\")\n" " (cond\n" " ((type-type? (-> arg0 content-type) integer)\n" - " (let ((v1-1 (-> arg0 content-type symbol)))\n" - " (cond\n" - " ((= v1-1 (quote int32))\n" + " (case (-> arg0 content-type symbol) \n" + " (('int32)\n" " (dotimes (s5-0 (-> arg0 length))\n" " (format #t (if (zero? s5-0)\n" " \"~D\"\n" @@ -553,120 +552,111 @@ TEST_F(FormRegressionTest, ExprArrayMethod2) { " )\n" " )\n" " )\n" - " ((= v1-1 (quote uint32))\n" - " (dotimes (s5-1 (-> arg0 length))\n" - " (format #t (if (zero? s5-1)\n" - " \"~D\"\n" - " \" ~D\"\n" - " )\n" - " (-> (the-as (array uint32) arg0) s5-1)\n" - " )\n" + " (('uint32)\n" + " (dotimes (s5-1 (-> arg0 length))\n" + " (format #t (if (zero? s5-1)\n" + " \"~D\"\n" + " \" ~D\"\n" + " )\n" + " (-> (the-as (array uint32) arg0) s5-1)\n" " )\n" " )\n" - " ((= v1-1 (quote int64))\n" - " (dotimes (s5-2 (-> arg0 length))\n" - " (format #t (if (zero? s5-2)\n" - " \"~D\"\n" - " \" ~D\"\n" - " )\n" - " (-> (the-as (array int64) arg0) s5-2)\n" - " )\n" + " )\n" + " (('int64)\n" + " (dotimes (s5-2 (-> arg0 length))\n" + " (format #t (if (zero? s5-2)\n" + " \"~D\"\n" + " \" ~D\"\n" + " )\n" + " (-> (the-as (array int64) arg0) s5-2)\n" " )\n" " )\n" - " ((= v1-1 (quote uint64))\n" - " (dotimes (s5-3 (-> arg0 length))\n" - " (format #t (if (zero? s5-3)\n" - " \"#x~X\"\n" - " \" #x~X\"\n" - " )\n" - " (-> (the-as (array uint64) arg0) s5-3)\n" - " )\n" + " )\n" + " (('uint64)\n" + " (dotimes (s5-3 (-> arg0 length))\n" + " (format #t (if (zero? s5-3)\n" + " \"#x~X\"\n" + " \" #x~X\"\n" + " )\n" + " (-> (the-as (array uint64) arg0) s5-3)\n" " )\n" " )\n" - " ((= v1-1 (quote int8))\n" - " (dotimes (s5-4 (-> arg0 length))\n" - " (format #t (if (zero? s5-4)\n" - " \"~D\"\n" - " \" ~D\"\n" - " )\n" - " (-> (the-as (array int8) arg0) s5-4)\n" - " )\n" + " )\n" + " (('int8)\n" + " (dotimes (s5-4 (-> arg0 length))\n" + " (format #t (if (zero? s5-4)\n" + " \"~D\"\n" + " \" ~D\"\n" + " )\n" + " (-> (the-as (array int8) arg0) s5-4)\n" " )\n" " )\n" - " ((= v1-1 (quote uint8))\n" - " (dotimes (s5-5 (-> arg0 length))\n" - " (format #t (if (zero? s5-5)\n" - " \"~D\"\n" - " \" ~D\"\n" - " )\n" - " (-> (the-as (array uint8) arg0) s5-5)\n" - " )\n" + " )\n" + " (('uint8)\n" + " (dotimes (s5-5 (-> arg0 length))\n" + " (format #t (if (zero? s5-5)\n" + " \"~D\"\n" + " \" ~D\"\n" + " )\n" + " (-> (the-as (array uint8) arg0) s5-5)\n" " )\n" " )\n" - " ((= v1-1 (quote int16))\n" - " (dotimes (s5-6 (-> arg0 length))\n" - " (format #t (if (zero? s5-6)\n" - " \"~D\"\n" - " \" ~D\"\n" - " )\n" - " (-> (the-as (array int16) arg0) s5-6)\n" - " )\n" + " )\n" + " (('int16)\n" + " (dotimes (s5-6 (-> arg0 length))\n" + " (format #t (if (zero? s5-6)\n" + " \"~D\"\n" + " \" ~D\"\n" + " )\n" + " (-> (the-as (array int16) arg0) s5-6)\n" " )\n" " )\n" - " ((= v1-1 (quote uint16))\n" - " (dotimes (s5-7 (-> arg0 length))\n" - " (format #t (if (zero? s5-7)\n" - " \"~D\"\n" - " \" ~D\"\n" - " )\n" - " (-> (the-as (array uint16) arg0) s5-7)\n" - " )\n" + " )\n" + " (('uint16)\n" + " (dotimes (s5-7 (-> arg0 length))\n" + " (format #t (if (zero? s5-7)\n" + " \"~D\"\n" + " \" ~D\"\n" + " )\n" + " (-> (the-as (array uint16) arg0) s5-7)\n" " )\n" " )\n" - " (else\n" - " (cond\n" - " ((or (= v1-1 (quote uint128)) (= v1-1 (quote int128)))\n" - " (dotimes (s5-8 (-> arg0 length))\n" - " (format #t (if (zero? s5-8)\n" - " \"#x~X\"\n" - " \" #x~X\"\n" - " )\n" - " (-> (the-as (array uint128) arg0) s5-8)\n" - " )\n" - " )\n" - " )\n" - " (else\n" - " (dotimes (s5-9 (-> arg0 length))\n" - " (format #t (if (zero? s5-9)\n" - " \"~D\"\n" - " \" ~D\"\n" - " )\n" - " (-> (the-as (array int32) arg0) s5-9)\n" - " )\n" - " )\n" - " )\n" + " )\n" + " (('uint128 'int128)\n" + " (dotimes (s5-8 (-> arg0 length))\n" + " (format #t (if (zero? s5-8)\n" + " \"#x~X\"\n" + " \" #x~X\"\n" + " )\n" + " (-> (the-as (array uint128) arg0) s5-8)\n" + " )\n" + " )\n" + " )\n" + " (else\n" + " (dotimes (s5-9 (-> arg0 length))\n" + " (format #t (if (zero? s5-9)\n" + " \"~D\"\n" + " \" ~D\"\n" + " )\n" + " (-> (the-as (array int32) arg0) s5-9)\n" " )\n" " )\n" " )\n" " )\n" " )\n" - " (else\n" - " (cond\n" - " ((= (-> arg0 content-type) float)\n" - " (dotimes (s5-10 (-> arg0 length))\n" - " (if (zero? s5-10)\n" - " (format #t \"~f\" (-> (the-as (array float) arg0) s5-10))\n" - " (format #t \" ~f\" (-> (the-as (array float) arg0) s5-10))\n" - " )\n" - " )\n" + " ((= (-> arg0 content-type) float)\n" + " (dotimes (s5-10 (-> arg0 length))\n" + " (if (zero? s5-10)\n" + " (format #t \"~f\" (-> (the-as (array float) arg0) s5-10))\n" + " (format #t \" ~f\" (-> (the-as (array float) arg0) s5-10))\n" " )\n" - " (else\n" - " (dotimes (s5-11 (-> arg0 length))\n" - " (if (zero? s5-11)\n" - " (format #t \"~A\" (-> (the-as (array basic) arg0) s5-11))\n" - " (format #t \" ~A\" (-> (the-as (array basic) arg0) s5-11))\n" - " )\n" - " )\n" + " )\n" + " )\n" + " (else\n" + " (dotimes (s5-11 (-> arg0 length))\n" + " (if (zero? s5-11)\n" + " (format #t \"~A\" (-> (the-as (array basic) arg0) s5-11))\n" + " (format #t \" ~A\" (-> (the-as (array basic) arg0) s5-11))\n" " )\n" " )\n" " )\n" @@ -1164,87 +1154,72 @@ TEST_F(FormRegressionTest, ExprArrayMethod3) { " (format #t \"~Tdata[~D]: @ #x~X~%\" (-> arg0 allocated-length) (-> arg0 data))\n" " (cond\n" " ((type-type? (-> arg0 content-type) integer)\n" - " (let ((v1-1 (-> arg0 content-type symbol)))\n" - " (cond\n" - " ((= v1-1 (quote int32))\n" + " (case (-> arg0 content-type symbol) \n" + " (('int32)\n" " (dotimes (s5-0 (-> arg0 length))\n" " (format #t \"~T [~D] ~D~%\" s5-0 (-> (the-as (array int32) arg0) s5-0))\n" " )\n" " )\n" - " ((= v1-1 (quote uint32))\n" - " (dotimes (s5-1 (-> arg0 length))\n" - " (format #t \"~T [~D] ~D~%\" s5-1 (-> (the-as (array uint32) arg0) s5-1))\n" + " (('uint32)\n" + " (dotimes (s5-1 (-> arg0 length))\n" + " (format #t \"~T [~D] ~D~%\" s5-1 (-> (the-as (array uint32) arg0) s5-1))\n" + " )\n" + " )\n" + " (('int64)\n" + " (dotimes (s5-2 (-> arg0 length))\n" + " (format #t \"~T [~D] ~D~%\" s5-2 (-> (the-as (array int64) arg0) s5-2))\n" + " )\n" + " )\n" + " (('uint64)\n" + " (dotimes (s5-3 (-> arg0 length))\n" + " (format #t \"~T [~D] #x~X~%\" s5-3 (-> (the-as (array uint64) arg0) s5-3))\n" + " )\n" + " )\n" + " (('int8)\n" + " (dotimes (s5-4 (-> arg0 length))\n" + " (format #t \"~T [~D] ~D~%\" s5-4 (-> (the-as (array int8) arg0) s5-4))\n" + " )\n" + " )\n" + " (('uint8)\n" + " (dotimes (s5-5 (-> arg0 length))\n" + " (format #t \"~T [~D] ~D~%\" s5-5 (-> (the-as (array int8) arg0) s5-5))\n" + " )\n" + " )\n" + " (('int16)\n" + " (dotimes (s5-6 (-> arg0 length))\n" + " (format #t \"~T [~D] ~D~%\" s5-6 (-> (the-as (array int16) arg0) s5-6))\n" + " )\n" + " )\n" + " (('uint16)\n" + " (dotimes (s5-7 (-> arg0 length))\n" + " (format #t \"~T [~D] ~D~%\" s5-7 (-> (the-as (array uint16) arg0) s5-7))\n" + " )\n" + " )\n" + " (('int128 'uint128)\n" + " (dotimes (s5-8 (-> arg0 length))\n" + " (format\n" + " #t\n" + " \"~T [~D] #x~X~%\"\n" + " s5-8\n" + " (-> (the-as (array uint128) arg0) s5-8)\n" " )\n" " )\n" - " ((= v1-1 (quote int64))\n" - " (dotimes (s5-2 (-> arg0 length))\n" - " (format #t \"~T [~D] ~D~%\" s5-2 (-> (the-as (array int64) arg0) s5-2))\n" - " )\n" - " )\n" - " ((= v1-1 (quote uint64))\n" - " (dotimes (s5-3 (-> arg0 length))\n" - " (format\n" - " #t\n" - " \"~T [~D] #x~X~%\"\n" - " s5-3\n" - " (-> (the-as (array uint64) arg0) s5-3)\n" - " )\n" - " )\n" - " )\n" - " ((= v1-1 (quote int8))\n" - " (dotimes (s5-4 (-> arg0 length))\n" - " (format #t \"~T [~D] ~D~%\" s5-4 (-> (the-as (array int8) arg0) s5-4))\n" - " )\n" - " )\n" - " ((= v1-1 (quote uint8))\n" - " (dotimes (s5-5 (-> arg0 length))\n" - " (format #t \"~T [~D] ~D~%\" s5-5 (-> (the-as (array int8) arg0) s5-5))\n" - " )\n" - " )\n" - " ((= v1-1 (quote int16))\n" - " (dotimes (s5-6 (-> arg0 length))\n" - " (format #t \"~T [~D] ~D~%\" s5-6 (-> (the-as (array int16) arg0) s5-6))\n" - " )\n" - " )\n" - " ((= v1-1 (quote uint16))\n" - " (dotimes (s5-7 (-> arg0 length))\n" - " (format #t \"~T [~D] ~D~%\" s5-7 (-> (the-as (array uint16) arg0) s5-7))\n" - " )\n" - " )\n" - " (else\n" - " (cond\n" - " ((or (= v1-1 (quote int128)) (= v1-1 (quote uint128)))\n" - " (dotimes (s5-8 (-> arg0 length))\n" - " (format\n" - " #t\n" - " \"~T [~D] #x~X~%\"\n" - " s5-8\n" - " (-> (the-as (array uint128) arg0) s5-8)\n" - " )\n" - " )\n" - " )\n" - " (else\n" - " (dotimes (s5-9 (-> arg0 length))\n" - " (format #t \"~T [~D] ~D~%\" s5-9 (-> (the-as (array int32) arg0) s5-9))\n" - " )\n" - " )\n" - " )\n" + " )\n" + " (else\n" + " (dotimes (s5-9 (-> arg0 length))\n" + " (format #t \"~T [~D] ~D~%\" s5-9 (-> (the-as (array int32) arg0) s5-9))\n" " )\n" " )\n" " )\n" " )\n" + " ((= (-> arg0 content-type) float)\n" + " (dotimes (s5-10 (-> arg0 length))\n" + " (format #t \"~T [~D] ~f~%\" s5-10 (-> (the-as (array float) arg0) s5-10))\n" + " )\n" + " )\n" " (else\n" - " (cond\n" - " ((= (-> arg0 content-type) float)\n" - " (dotimes (s5-10 (-> arg0 length))\n" - " (format #t \"~T [~D] ~f~%\" s5-10 (-> (the-as (array float) arg0) s5-10))\n" - " )\n" - " )\n" - " (else\n" - " (dotimes (s5-11 (-> arg0 length))\n" - " (format #t \"~T [~D] ~A~%\" s5-11 (-> (the-as (array basic) arg0) s5-11))\n" - " )\n" - " )\n" + " (dotimes (s5-11 (-> arg0 length))\n" + " (format #t \"~T [~D] ~A~%\" s5-11 (-> (the-as (array basic) arg0) s5-11))\n" " )\n" " )\n" " )\n" @@ -1811,8 +1786,7 @@ TEST_F(FormRegressionTest, ExprValid) { " ((not arg1)\n" " (cond\n" " ((nonzero? (logand (the-as int arg0) 3))\n" - " (if\n" - " arg2\n" + " (if arg2\n" " (format\n" " arg4\n" " \"ERROR: object #x~X ~S is not a valid object (misaligned)~%\"\n" @@ -1823,8 +1797,7 @@ TEST_F(FormRegressionTest, ExprValid) { " #f\n" " )\n" " ((not v1-1)\n" - " (if\n" - " arg2\n" + " (if arg2\n" " (format\n" " arg4\n" " \"ERROR: object #x~X ~S is not a valid object (bad address)~%\"\n" @@ -1834,101 +1807,55 @@ TEST_F(FormRegressionTest, ExprValid) { " )\n" " #f\n" " )\n" - " (else #t)\n" + " (else\n" + " #t\n" + " )\n" " )\n" " )\n" - " ((and arg3 (not arg0)) #t)\n" - " (else\n" + " ((and arg3 (not arg0))\n" + " #t\n" + " )\n" + " ((= arg1 structure)\n" " (cond\n" - " ((= arg1 structure)\n" - " (cond\n" - " ((nonzero? (logand (the-as int arg0) 15))\n" - " (if\n" - " arg2\n" - " (format\n" - " arg4\n" - " \"ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%\"\n" - " arg0\n" - " arg2\n" - " arg1\n" - " )\n" - " )\n" - " #f\n" - " )\n" - " ((or\n" - " (not v1-1)\n" - " (begin\n" - " (let ((v1-10 #x8000)) (.daddu v1-11 v1-10 s7-0))\n" - " (< (the-as uint arg0) (the-as uint v1-11))\n" - " )\n" - " )\n" - " (if\n" - " arg2\n" - " (format\n" - " arg4\n" - " \"ERROR: object #x~X ~S is not a valid object of type '~A' (bad address)~%\"\n" - " arg0\n" - " arg2\n" - " arg1\n" - " )\n" - " )\n" - " #f\n" - " )\n" - " (else #t)\n" - " )\n" - " )\n" - " ((= arg1 pair)\n" - " (cond\n" - " ((!= (logand (the-as int arg0) 7) 2)\n" - " (if\n" - " arg2\n" - " (format\n" - " arg4\n" - " \"ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%\"\n" - " arg0\n" - " arg2\n" - " arg1\n" - " )\n" - " )\n" - " #f\n" - " )\n" - " ((not v1-1)\n" - " (if\n" - " arg2\n" - " (format\n" - " arg4\n" - " \"ERROR: object #x~X ~S is not a valid object of type '~A' (bad address)~%\"\n" - " arg0\n" - " arg2\n" - " arg1\n" - " )\n" - " )\n" - " #f\n" - " )\n" - " (else #t)\n" - " )\n" - " )\n" - " ((= arg1 binteger)\n" - " (cond\n" - " ((zero? (logand (the-as int arg0) 7)) #t)\n" - " (else\n" - " (if\n" - " arg2\n" - " (format\n" - " arg4\n" - " \"ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%\"\n" - " arg0\n" - " arg2\n" - " arg1\n" - " )\n" - " )\n" - " #f\n" + " ((nonzero? (logand (the-as int arg0) 15))\n" + " (if arg2\n" + " (format\n" + " arg4\n" + " \"ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%\"\n" + " arg0\n" + " arg2\n" + " arg1\n" " )\n" " )\n" + " #f\n" " )\n" - " ((!= (logand (the-as int arg0) 7) 4)\n" - " (if\n" - " arg2\n" + " ((or (not v1-1) (begin\n" + " (let ((v1-10 #x8000))\n" + " (.daddu v1-11 v1-10 s7-0)\n" + " )\n" + " (< (the-as uint arg0) (the-as uint v1-11))\n" + " )\n" + " )\n" + " (if arg2\n" + " (format\n" + " arg4\n" + " \"ERROR: object #x~X ~S is not a valid object of type '~A' (bad address)~%\"\n" + " arg0\n" + " arg2\n" + " arg1\n" + " )\n" + " )\n" + " #f\n" + " )\n" + " (else\n" + " #t\n" + " )\n" + " )\n" + " )\n" + " ((= arg1 pair)\n" + " (cond\n" + " ((!= (logand (the-as int arg0) 7) 2)\n" + " (if arg2\n" " (format\n" " arg4\n" " \"ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%\"\n" @@ -1940,8 +1867,7 @@ TEST_F(FormRegressionTest, ExprValid) { " #f\n" " )\n" " ((not v1-1)\n" - " (if\n" - " arg2\n" + " (if arg2\n" " (format\n" " arg4\n" " \"ERROR: object #x~X ~S is not a valid object of type '~A' (bad address)~%\"\n" @@ -1952,94 +1878,137 @@ TEST_F(FormRegressionTest, ExprValid) { " )\n" " #f\n" " )\n" - " ((and (= arg1 type) (!= (rtype-of arg0) type))\n" - " (if\n" - " arg2\n" + " (else\n" + " #t\n" + " )\n" + " )\n" + " )\n" + " ((= arg1 binteger)\n" + " (cond\n" + " ((zero? (logand (the-as int arg0) 7))\n" + " #t\n" + " )\n" + " (else\n" + " (if arg2\n" " (format\n" " arg4\n" - " \"ERROR: object #x~X ~S is not a valid object of type '~A' (invalid type #x~X)~%\"\n" + " \"ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%\"\n" + " arg0\n" + " arg2\n" + " arg1\n" + " )\n" + " )\n" + " #f\n" + " )\n" + " )\n" + " )\n" + " ((!= (logand (the-as int arg0) 7) 4)\n" + " (if arg2\n" + " (format\n" + " arg4\n" + " \"ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%\"\n" + " arg0\n" + " arg2\n" + " arg1\n" + " )\n" + " )\n" + " #f\n" + " )\n" + " ((not v1-1)\n" + " (if arg2\n" + " (format\n" + " arg4\n" + " \"ERROR: object #x~X ~S is not a valid object of type '~A' (bad address)~%\"\n" + " arg0\n" + " arg2\n" + " arg1\n" + " )\n" + " )\n" + " #f\n" + " )\n" + " ((and (= arg1 type) (!= (rtype-of arg0) type))\n" + " (if arg2\n" + " (format\n" + " arg4\n" + " \"ERROR: object #x~X ~S is not a valid object of type '~A' (invalid type #x~X)~%\"\n" + " arg0\n" + " arg2\n" + " arg1\n" + " (rtype-of arg0)\n" + " )\n" + " )\n" + " #f\n" + " )\n" + " ((and (!= arg1 type) (not (valid? (rtype-of arg0) type #f #t 0)))\n" + " (if arg2\n" + " (format\n" + " arg4\n" + " \"ERROR: object #x~X ~S is not a valid object of type '~A' (invalid type #x~X)~%\"\n" + " arg0\n" + " arg2\n" + " arg1\n" + " (rtype-of arg0)\n" + " )\n" + " )\n" + " #f\n" + " )\n" + " ((not (type-type? (rtype-of arg0) arg1))\n" + " (if arg2\n" + " (format\n" + " arg4\n" + " \"ERROR: object #x~X ~S is not a valid object of type '~A' (is type '~A' " + "instead)~%\"\n" + " arg0\n" + " arg2\n" + " arg1\n" + " (rtype-of arg0)\n" + " )\n" + " )\n" + " #f\n" + " )\n" + " ((= arg1 symbol)\n" + " (let ((v1-43 #x8000))\n" + " (.daddu v1-44 v1-43 s7-0)\n" + " )\n" + " (cond\n" + " ((>= (the-as uint arg0) (the-as uint v1-44))\n" + " (if arg2\n" + " (format\n" + " arg4\n" + " \"ERROR: object #x~X ~S is not a valid object of type '~A' (not in symbol " + "table)~%\"\n" " arg0\n" " arg2\n" " arg1\n" - " (rtype-of arg0)\n" " )\n" " )\n" " #f\n" " )\n" " (else\n" - " (cond\n" - " ((and (!= arg1 type) (not (valid? (rtype-of arg0) type #f #t 0)))\n" - " (if\n" - " arg2\n" - " (format\n" - " arg4\n" - " \"ERROR: object #x~X ~S is not a valid object of type '~A' (invalid type " - "#x~X)~%\"\n" - " arg0\n" - " arg2\n" - " arg1\n" - " (rtype-of arg0)\n" - " )\n" - " )\n" - " #f\n" - " )\n" - " ((not (type-type? (rtype-of arg0) arg1))\n" - " (if\n" - " arg2\n" - " (format\n" - " arg4\n" - " \"ERROR: object #x~X ~S is not a valid object of type '~A' (is type '~A' " - "instead)~%\"\n" - " arg0\n" - " arg2\n" - " arg1\n" - " (rtype-of arg0)\n" - " )\n" - " )\n" - " #f\n" - " )\n" - " ((= arg1 symbol)\n" - " (let ((v1-43 #x8000)) (.daddu v1-44 v1-43 s7-0))\n" - " (cond\n" - " ((>= (the-as uint arg0) (the-as uint v1-44))\n" - " (if\n" - " arg2\n" - " (format\n" - " arg4\n" - " \"ERROR: object #x~X ~S is not a valid object of type '~A' (not in symbol " - "table)~%\"\n" - " arg0\n" - " arg2\n" - " arg1\n" - " )\n" - " )\n" - " #f\n" - " )\n" - " (else #t)\n" - " )\n" - " )\n" - " ((begin\n" - " (let ((v1-47 #x8000)) (.daddu v1-48 v1-47 s7-0))\n" - " (< (the-as uint arg0) (the-as uint v1-48))\n" - " )\n" - " (if\n" - " arg2\n" - " (format\n" - " arg4\n" - " \"ERROR: object #x~X ~S is not a valid object of type '~A' (inside symbol " - "table)~%\"\n" - " arg0\n" - " arg2\n" - " arg1\n" - " )\n" - " )\n" - " #f\n" - " )\n" - " (else #t)\n" - " )\n" + " #t\n" " )\n" " )\n" " )\n" + " ((begin\n" + " (let ((v1-47 #x8000))\n" + " (.daddu v1-48 v1-47 s7-0)\n" + " )\n" + " (< (the-as uint arg0) (the-as uint v1-48))\n" + " )\n" + " (if arg2\n" + " (format\n" + " arg4\n" + " \"ERROR: object #x~X ~S is not a valid object of type '~A' (inside symbol table)~%\"\n" + " arg0\n" + " arg2\n" + " arg1\n" + " )\n" + " )\n" + " #f\n" + " )\n" + " (else\n" + " #t\n" + " )\n" " )\n" " )"; test_with_expr( @@ -2377,20 +2346,19 @@ TEST_F(FormRegressionTest, ExprStringToInt) { " (the-as int (+ (+ (-> a0-3 0) -55) (the-as uint (* v0-0 16))))\n" " )\n" " )\n" + " ((and\n" + " (>= (-> a0-3 0) (the-as uint 97))\n" + " (>= (the-as uint 102) (-> a0-3 0))\n" + " )\n" + " (set!\n" + " v0-0\n" + " (the-as int (+ (+ (-> a0-3 0) -87) (the-as uint (* v0-0 16))))\n" + " )\n" + " )\n" " (else\n" - " (if\n" - " (and\n" - " (>= (-> a0-3 0) (the-as uint 97))\n" - " (>= (the-as uint 102) (-> a0-3 0))\n" - " )\n" - " (set!\n" - " v0-0\n" - " (the-as int (+ (+ (-> a0-3 0) -87) (the-as uint (* v0-0 16))))\n" - " )\n" - " (set!\n" - " v0-0\n" - " (the-as int (+ (+ (-> a0-3 0) -48) (the-as uint (* v0-0 16))))\n" - " )\n" + " (set!\n" + " v0-0\n" + " (the-as int (+ (+ (-> a0-3 0) -48) (the-as uint (* v0-0 16))))\n" " )\n" " )\n" " )\n" @@ -2844,16 +2812,14 @@ TEST_F(FormRegressionTest, Method19ResTag) { " )\n" " (cond\n" " ((zero? t6-5)\n" - " (begin\n" - " (set! t4-1 t5-2)\n" - " (goto cfg-32)\n" - " )\n" + " (set! t4-1 t5-2)\n" + " (goto cfg-32)\n" + " )\n" + " ((< (the-as int t6-5) 0)\n" + " (set! t3-1 (+ t5-2 -1))\n" " )\n" " (else\n" - " (if (< (the-as int t6-5) 0)\n" - " (set! t3-1 (+ t5-2 -1))\n" - " (set! t4-0 (+ t5-2 1))\n" - " )\n" + " (set! t4-0 (+ t5-2 1))\n" " )\n" " )\n" " )\n" @@ -2880,12 +2846,10 @@ TEST_F(FormRegressionTest, Method19ResTag) { " )\n" " (+! t4-1 -1)\n" " )\n" - " (if (= arg2 'base)\n" - " (begin\n" - " (set! t0-6 t4-1)\n" - " (set! v1-14 t4-1)\n" - " (goto cfg-73)\n" - " )\n" + " (when (= arg2 'base)\n" + " (set! t0-6 t4-1)\n" + " (set! v1-14 t4-1)\n" + " (goto cfg-73)\n" " )\n" " (let ((t3-13 t4-1)\n" " (t4-4 (&-> (-> arg0 tag) t4-1))\n" @@ -2907,11 +2871,9 @@ TEST_F(FormRegressionTest, Method19ResTag) { " ((!= arg1 (-> t4-4 0 name))\n" " )\n" " ((= (-> t4-4 0 key-frame) arg3)\n" - " (begin\n" - " (set! t0-6 t3-13)\n" - " (set! v1-14 t3-13)\n" - " (goto cfg-73)\n" - " )\n" + " (set! t0-6 t3-13)\n" + " (set! v1-14 t3-13)\n" + " (goto cfg-73)\n" " )\n" " ((and (>= arg3 (-> t4-4 0 key-frame)) (!= arg2 'exact))\n" " (set! t0-6 t3-13)\n" @@ -2921,12 +2883,10 @@ TEST_F(FormRegressionTest, Method19ResTag) { " )\n" " )\n" " ((< arg3 (-> t4-4 0 key-frame))\n" - " (begin\n" - " (if (and (!= t0-6 t1-0) (= arg2 'interp))\n" - " (set! v1-14 t3-13)\n" - " )\n" - " (goto cfg-73)\n" + " (if (and (!= t0-6 t1-0) (= arg2 'interp))\n" + " (set! v1-14 t3-13)\n" " )\n" + " (goto cfg-73)\n" " )\n" " )\n" " (+! t3-13 1)\n" diff --git a/test/decompiler/test_gkernel_decomp.cpp b/test/decompiler/test_gkernel_decomp.cpp index e1a65fa5fd..69141cc049 100644 --- a/test/decompiler/test_gkernel_decomp.cpp +++ b/test/decompiler/test_gkernel_decomp.cpp @@ -1410,15 +1410,15 @@ TEST_F(FormRegressionTest, ExprMethod21DeadPoolHeap) { " )\n" " )\n" " )\n" - " (else\n" - " (if (-> arg1 next)\n" - " (&-\n" - " (the-as pointer (-> arg1 next process))\n" - " (the-as uint (&+ (-> arg0 heap base) 4))\n" - " )\n" - " (&- (-> arg0 heap top) (the-as uint (-> arg0 heap base)))\n" + " ((-> arg1 next)\n" + " (&-\n" + " (the-as pointer (-> arg1 next process))\n" + " (the-as uint (&+ (-> arg0 heap base) 4))\n" " )\n" " )\n" + " (else\n" + " (&- (-> arg0 heap top) (the-as uint (-> arg0 heap base)))\n" + " )\n" " )"; test_with_expr(func, type, expected, false, "", {}, "[\t\t[5, \"v1\", \"pointer\"],\n" From 079f6230997a79867719a6082c889e60476956f9 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 12 Jul 2021 02:00:42 +0000 Subject: [PATCH 07/57] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/{about.63a44ad4.js => about.cd7ee04c.js} | 4 ++-- docs/js/{about.63a44ad4.js.map => about.cd7ee04c.js.map} | 2 +- docs/js/{app.635c14bd.js => app.373b3d7d.js} | 4 ++-- docs/js/{app.635c14bd.js.map => app.373b3d7d.js.map} | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename docs/js/{about.63a44ad4.js => about.cd7ee04c.js} (99%) rename docs/js/{about.63a44ad4.js.map => about.cd7ee04c.js.map} (99%) rename docs/js/{app.635c14bd.js => app.373b3d7d.js} (97%) rename docs/js/{app.635c14bd.js.map => app.373b3d7d.js.map} (98%) diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index 2e227540f5..eef0bf2d14 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 107118, + "value": 107160, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index 6b96a8d434..06f251d31a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.63a44ad4.js b/docs/js/about.cd7ee04c.js similarity index 99% rename from docs/js/about.63a44ad4.js rename to docs/js/about.cd7ee04c.js index a9ec4e0e25..25d579eaf4 100644 --- a/docs/js/about.63a44ad4.js +++ b/docs/js/about.cd7ee04c.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107118,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.63a44ad4.js.map \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107160,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.cd7ee04c.js.map \ No newline at end of file diff --git a/docs/js/about.63a44ad4.js.map b/docs/js/about.cd7ee04c.js.map similarity index 99% rename from docs/js/about.63a44ad4.js.map rename to docs/js/about.cd7ee04c.js.map index 7594b634c4..d437350eaf 100644 --- a/docs/js/about.63a44ad4.js.map +++ b/docs/js/about.cd7ee04c.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?b24d","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.63a44ad4.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?b24d","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.cd7ee04c.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.635c14bd.js b/docs/js/app.373b3d7d.js similarity index 97% rename from docs/js/app.635c14bd.js rename to docs/js/app.373b3d7d.js index 0436062fd8..1a2422b812 100644 --- a/docs/js/app.635c14bd.js +++ b/docs/js/app.373b3d7d.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?7eb4","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.373b3d7d.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"cd7ee04c\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file From 73330302bafef0036103f693abeacb7a267dbdf9 Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Mon, 12 Jul 2021 19:29:56 -0400 Subject: [PATCH 08/57] fix bug in field lookup (#700) --- common/type_system/TypeFieldLookup.cpp | 16 +++---- goal_src/engine/gfx/generic/generic.gc | 42 ++++--------------- .../engine/gfx/generic/generic_REF.gc | 40 ++++-------------- test/decompiler/test_DataParser.cpp | 12 ++++++ 4 files changed, 37 insertions(+), 73 deletions(-) diff --git a/common/type_system/TypeFieldLookup.cpp b/common/type_system/TypeFieldLookup.cpp index 3985b8a662..83c5abb068 100644 --- a/common/type_system/TypeFieldLookup.cpp +++ b/common/type_system/TypeFieldLookup.cpp @@ -231,6 +231,8 @@ void try_reverse_lookup_array_like(const FieldReverseLookupInput& input, * - get something inside an object (variable idx) * - get a constant idx reference object (we pick this over just getting the array for idx = 0) * - get something inside a constant idx reference object + * + * Note: for an inline array of basics, the offset should include the basic offset. */ void try_reverse_lookup_inline_array(const FieldReverseLookupInput& input, const TypeSystem& ts, @@ -264,7 +266,7 @@ void try_reverse_lookup_inline_array(const FieldReverseLookupInput& input, FieldReverseLookupInput next_input; next_input.deref = input.deref; next_input.stride = 0; - next_input.offset = input.offset; + next_input.offset = input.offset; // includes the offset. next_input.base_type = di.result_type; try_reverse_lookup(next_input, ts, &var_idx_node, output, max_count); return; @@ -272,18 +274,17 @@ void try_reverse_lookup_inline_array(const FieldReverseLookupInput& input, // constant lookup, or accessing within the first one // which element we are in - int elt_idx = input.offset / di.stride; - // how many bytes into the element we look + int elt_idx = (ts.lookup_type(di.result_type)->get_offset() + input.offset) / di.stride; + // how many bytes into the element we look (including offset) int offset_into_elt = input.offset - (elt_idx * di.stride); // the expected number of bytes into the element we would look to grab a ref to the elt. - int expected_offset_into_elt = ts.lookup_type(di.result_type)->get_offset(); ReverseLookupNode const_idx_node; const_idx_node.prev = parent; const_idx_node.token.kind = FieldReverseLookupOutput::Token::Kind::CONSTANT_IDX; const_idx_node.token.idx = elt_idx; - if (offset_into_elt == expected_offset_into_elt && !input.deref.has_value()) { + if (offset_into_elt == 0 && !input.deref.has_value()) { // just get an element (possibly zero, and we want to include the 0 if so) // for the degenerate inline-array case, it seems more likely that we get the zeroth object // rather than the array, so this goes before that case. @@ -295,7 +296,7 @@ void try_reverse_lookup_inline_array(const FieldReverseLookupInput& input, } // can we just return the array? - if (expected_offset_into_elt == offset_into_elt && !input.deref.has_value() && elt_idx == 0) { + if (offset_into_elt == 0 && !input.deref.has_value() && elt_idx == 0) { auto parent_vec = parent_to_vector(parent); if (!parent_vec.empty()) { output->results.emplace_back(false, input.base_type, parent_to_vector(parent)); @@ -311,8 +312,7 @@ void try_reverse_lookup_inline_array(const FieldReverseLookupInput& input, FieldReverseLookupInput next_input; next_input.deref = input.deref; next_input.stride = input.stride; - // try_reverse_lookup expects "offset_into_field - boxed_offset" - next_input.offset = offset_into_elt - expected_offset_into_elt; + next_input.offset = offset_into_elt; next_input.base_type = di.result_type; try_reverse_lookup(next_input, ts, &const_idx_node, output, max_count); } diff --git a/goal_src/engine/gfx/generic/generic.gc b/goal_src/engine/gfx/generic/generic.gc index e73f4b4f82..febf5984d6 100644 --- a/goal_src/engine/gfx/generic/generic.gc +++ b/goal_src/engine/gfx/generic/generic.gc @@ -23,55 +23,37 @@ ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 0) - (the-as - generic-dma-foreground-sink - (-> *level* level0 foreground-sink-group 0 merc-sink) - ) + (-> *level* level0 foreground-sink-group 0 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 1) - (the-as - generic-dma-foreground-sink - (-> *level* level0 foreground-sink-group 1 merc-sink) - ) + (-> *level* level0 foreground-sink-group 1 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 2) - (the-as - generic-dma-foreground-sink - (-> *level* level1 foreground-sink-group 0 merc-sink) - ) + (-> *level* level1 foreground-sink-group 0 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 3) - (the-as - generic-dma-foreground-sink - (-> *level* level1 foreground-sink-group 1 merc-sink) - ) + (-> *level* level1 foreground-sink-group 1 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 4) - (the-as - generic-dma-foreground-sink - (-> *level* level-default foreground-sink-group 0 merc-sink) - ) + (-> *level* level-default foreground-sink-group 0 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 5) - (the-as - generic-dma-foreground-sink - (-> *level* level-default foreground-sink-group 1 merc-sink) - ) + (-> *level* level-default foreground-sink-group 1 generic-sink) ) ;; failed to figure out what this is: @@ -83,19 +65,13 @@ ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 7) - (the-as - generic-dma-foreground-sink - (-> *level* level0 foreground-sink-group 2 merc-sink) - ) + (-> *level* level0 foreground-sink-group 2 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 8) - (the-as - generic-dma-foreground-sink - (-> *level* level1 foreground-sink-group 2 merc-sink) - ) + (-> *level* level1 foreground-sink-group 2 generic-sink) ) ;; definition for function generic-dma-foreground-sink-init @@ -135,7 +111,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - (the bucket-id s3-0) ;; TODO, correct types here + (the-as bucket-id s3-0) s2-0 (the-as (pointer dma-tag) a3-0) ) diff --git a/test/decompiler/reference/engine/gfx/generic/generic_REF.gc b/test/decompiler/reference/engine/gfx/generic/generic_REF.gc index bd3048af6e..94ef55b64b 100644 --- a/test/decompiler/reference/engine/gfx/generic/generic_REF.gc +++ b/test/decompiler/reference/engine/gfx/generic/generic_REF.gc @@ -16,55 +16,37 @@ ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 0) - (the-as - generic-dma-foreground-sink - (-> *level* level0 foreground-sink-group 0 merc-sink) - ) + (-> *level* level0 foreground-sink-group 0 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 1) - (the-as - generic-dma-foreground-sink - (-> *level* level0 foreground-sink-group 1 merc-sink) - ) + (-> *level* level0 foreground-sink-group 1 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 2) - (the-as - generic-dma-foreground-sink - (-> *level* level1 foreground-sink-group 0 merc-sink) - ) + (-> *level* level1 foreground-sink-group 0 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 3) - (the-as - generic-dma-foreground-sink - (-> *level* level1 foreground-sink-group 1 merc-sink) - ) + (-> *level* level1 foreground-sink-group 1 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 4) - (the-as - generic-dma-foreground-sink - (-> *level* level-default foreground-sink-group 0 merc-sink) - ) + (-> *level* level-default foreground-sink-group 0 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 5) - (the-as - generic-dma-foreground-sink - (-> *level* level-default foreground-sink-group 1 merc-sink) - ) + (-> *level* level-default foreground-sink-group 1 generic-sink) ) ;; failed to figure out what this is: @@ -76,19 +58,13 @@ ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 7) - (the-as - generic-dma-foreground-sink - (-> *level* level0 foreground-sink-group 2 merc-sink) - ) + (-> *level* level0 foreground-sink-group 2 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 8) - (the-as - generic-dma-foreground-sink - (-> *level* level1 foreground-sink-group 2 merc-sink) - ) + (-> *level* level1 foreground-sink-group 2 generic-sink) ) ;; definition for function generic-dma-foreground-sink-init diff --git a/test/decompiler/test_DataParser.cpp b/test/decompiler/test_DataParser.cpp index 5341649643..b369ecb11a 100644 --- a/test/decompiler/test_DataParser.cpp +++ b/test/decompiler/test_DataParser.cpp @@ -390,3 +390,15 @@ TEST_F(DataDecompTest, KernelContext) { " :relocating-process #f\n" " :low-memory-message #t)\n"); } + +TEST_F(DataDecompTest, ReverseArtExt) { + FieldReverseLookupInput input; + input.base_type = TypeSpec("external-art-control"); + input.offset = 124; + auto result = dts->ts.reverse_field_multi_lookup(input); + EXPECT_EQ(result.results.at(0).tokens.at(2).print(), "name"); + + input.offset = 108; + result = dts->ts.reverse_field_multi_lookup(input); + EXPECT_EQ(result.results.at(0).tokens.at(2).print(), "type"); +} \ No newline at end of file From 77667d918528bc567040f2c0ad6e4a9635a3435d Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 12 Jul 2021 23:31:10 +0000 Subject: [PATCH 09/57] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/{about.cd7ee04c.js => about.bc1b293a.js} | 4 ++-- docs/js/{about.cd7ee04c.js.map => about.bc1b293a.js.map} | 2 +- docs/js/{app.373b3d7d.js => app.f4cdc4a2.js} | 4 ++-- docs/js/{app.373b3d7d.js.map => app.f4cdc4a2.js.map} | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename docs/js/{about.cd7ee04c.js => about.bc1b293a.js} (99%) rename docs/js/{about.cd7ee04c.js.map => about.bc1b293a.js.map} (99%) rename docs/js/{app.373b3d7d.js => app.f4cdc4a2.js} (97%) rename docs/js/{app.373b3d7d.js.map => app.f4cdc4a2.js.map} (98%) diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index eef0bf2d14..4bc195d67a 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 107160, + "value": 107136, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index 06f251d31a..ad7850acf2 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.cd7ee04c.js b/docs/js/about.bc1b293a.js similarity index 99% rename from docs/js/about.cd7ee04c.js rename to docs/js/about.bc1b293a.js index 25d579eaf4..e76e773207 100644 --- a/docs/js/about.cd7ee04c.js +++ b/docs/js/about.bc1b293a.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107160,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.cd7ee04c.js.map \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107136,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.bc1b293a.js.map \ No newline at end of file diff --git a/docs/js/about.cd7ee04c.js.map b/docs/js/about.bc1b293a.js.map similarity index 99% rename from docs/js/about.cd7ee04c.js.map rename to docs/js/about.bc1b293a.js.map index d437350eaf..6fa78d9bd2 100644 --- a/docs/js/about.cd7ee04c.js.map +++ b/docs/js/about.bc1b293a.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?b24d","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.cd7ee04c.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?a70f","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.bc1b293a.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.373b3d7d.js b/docs/js/app.f4cdc4a2.js similarity index 97% rename from docs/js/app.373b3d7d.js rename to docs/js/app.f4cdc4a2.js index 1a2422b812..e04a4ab70e 100644 --- a/docs/js/app.373b3d7d.js +++ b/docs/js/app.f4cdc4a2.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?69b5","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.f4cdc4a2.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"bc1b293a\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file From ef011f4fe89fd400df65636810ebc64aa6540afc Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Thu, 15 Jul 2021 21:37:15 -0400 Subject: [PATCH 10/57] [goalc] add a build system (#704) * add first attempt at build system * fix stupid bug * try again --- common/goos/Interpreter.cpp | 43 +- common/goos/Interpreter.h | 17 +- decompiler/ObjectFile/ObjectFileDB.cpp | 4 + decompiler/config/jak1_ntsc_black_label.jsonc | 2 +- decompiler/main.cpp | 12 +- game/graphics/gfx.cpp | 2 +- goal_src/dgos/engine.gd | 295 +++++++++ goal_src/dgos/game.gd | 330 +++++++++ goal_src/dgos/kernel.gd | 10 + goal_src/dgos/vi1.gd | 57 ++ goal_src/engine/ui/text.gc | 3 + goal_src/game.gp | 626 ++++++++++++++++++ goal_src/goal-lib.gc | 30 + goalc/CMakeLists.txt | 13 +- goalc/compiler/Compiler.cpp | 20 +- goalc/compiler/Compiler.h | 57 +- goalc/compiler/compilation/Atoms.cpp | 2 + .../compiler/compilation/CompilerControl.cpp | 50 +- goalc/data_compiler/dir_tpages.cpp | 2 - goalc/data_compiler/game_count.cpp | 1 - goalc/debugger/Debugger.cpp | 12 +- goalc/debugger/Debugger.h | 11 +- goalc/main.cpp | 3 +- goalc/make/MakeSystem.cpp | 328 +++++++++ goalc/make/MakeSystem.h | 61 ++ goalc/make/Tool.cpp | 59 ++ goalc/make/Tool.h | 25 + goalc/make/Tools.cpp | 121 ++++ goalc/make/Tools.h | 57 ++ scripts/emacs/goal-config.el | 2 + scripts/shell/offline_test_git_branch.sh | 7 +- test/goalc/test_with_game.cpp | 4 + test/test_goos.cpp | 14 + 33 files changed, 2208 insertions(+), 72 deletions(-) create mode 100644 goal_src/dgos/engine.gd create mode 100644 goal_src/dgos/game.gd create mode 100644 goal_src/dgos/kernel.gd create mode 100644 goal_src/dgos/vi1.gd create mode 100644 goal_src/game.gp create mode 100644 goalc/make/MakeSystem.cpp create mode 100644 goalc/make/MakeSystem.h create mode 100644 goalc/make/Tool.cpp create mode 100644 goalc/make/Tool.h create mode 100644 goalc/make/Tools.cpp create mode 100644 goalc/make/Tools.h diff --git a/common/goos/Interpreter.cpp b/common/goos/Interpreter.cpp index 990ff4fbaf..3941ee0393 100644 --- a/common/goos/Interpreter.cpp +++ b/common/goos/Interpreter.cpp @@ -72,7 +72,8 @@ Interpreter::Interpreter() { {"string-ref", &Interpreter::eval_string_ref}, {"string-length", &Interpreter::eval_string_length}, {"string-append", &Interpreter::eval_string_append}, - {"ash", &Interpreter::eval_ash}}; + {"ash", &Interpreter::eval_ash}, + {"symbol->string", &Interpreter::eval_symbol_to_string}}; string_to_type = {{"empty-list", ObjectType::EMPTY_LIST}, {"integer", ObjectType::INTEGER}, @@ -90,6 +91,17 @@ Interpreter::Interpreter() { load_goos_library(); } +/*! + * Add a user defined special form. The given function will be called with unevaluated arguments. + * Lookup from these forms occurs after special/builtin, but before any env lookups. + */ +void Interpreter::register_form( + const std::string& name, + const std::function< + Object(const Object&, Arguments&, const std::shared_ptr&)>& form) { + m_custom_forms[name] = form; +} + Interpreter::~Interpreter() { // There are some circular references that prevent shared_ptrs from cleaning up if we // don't do this. @@ -191,6 +203,19 @@ bool Interpreter::get_global_variable_by_name(const std::string& name, Object* d return false; } +/*! + * Sets the variable to the value. Overwrites an existing value, or creates a new global. + */ +void Interpreter::set_global_variable_by_name(const std::string& name, const Object& value) { + auto sym = SymbolObject::make_new(reader.symbolTable, name).as_symbol(); + global_environment.as_env()->vars[sym] = value; +} + +void Interpreter::set_global_variable_to_symbol(const std::string& name, const std::string& value) { + auto sym = SymbolObject::make_new(reader.symbolTable, value); + set_global_variable_by_name(name, sym); +} + /*! * Get arguments being passed to a form. Don't evaluate them. There are two modes, "varargs" and * "not varargs". With varargs enabled, any number of unnamed and named arguments can be given. @@ -525,6 +550,13 @@ Object Interpreter::eval_pair(const Object& obj, const std::shared_ptrsecond))(obj, args, env); } + // try custom forms next + auto kv_u = m_custom_forms.find(head_sym->name); + if (kv_u != m_custom_forms.end()) { + Arguments args = get_args(obj, rest, make_varargs()); + return (kv_u->second)(obj, args, env); + } + // try macros next Object macro_obj; if (try_symbol_lookup(head, env, ¯o_obj) && macro_obj.is_macro()) { @@ -1586,10 +1618,17 @@ Object Interpreter::eval_ash(const Object& form, if (sa >= 0 && sa < 64) { return Object::make_integer(val << sa); } else if (sa > -64) { - return Object::make_integer(val >> sa); + return Object::make_integer(val >> -sa); } else { throw_eval_error(form, fmt::format("Shift amount {} is out of range", sa)); return EmptyListObject::make_new(); } } + +Object Interpreter::eval_symbol_to_string(const Object& form, + Arguments& args, + const std::shared_ptr&) { + vararg_check(form, args, {ObjectType::SYMBOL}, {}); + return StringObject::make_new(args.unnamed.at(0).as_symbol()->name); +} } // namespace goos diff --git a/common/goos/Interpreter.h b/common/goos/Interpreter.h index db82258017..50fb75750a 100644 --- a/common/goos/Interpreter.h +++ b/common/goos/Interpreter.h @@ -19,6 +19,8 @@ class Interpreter { void throw_eval_error(const Object& o, const std::string& err); Object eval_with_rewind(const Object& obj, const std::shared_ptr& env); bool get_global_variable_by_name(const std::string& name, Object* dest); + void set_global_variable_by_name(const std::string& name, const Object& value); + void set_global_variable_to_symbol(const std::string& name, const std::string& value); Object eval(Object obj, const std::shared_ptr& env); Object intern(const std::string& name); void disable_printfs(); @@ -36,6 +38,12 @@ class Interpreter { const std::shared_ptr& env); bool truthy(const Object& o); + void register_form( + const std::string& name, + const std::function< + Object(const Object&, Arguments&, const std::shared_ptr&)>& form); + void eval_args(Arguments* args, const std::shared_ptr& env); + Reader reader; Object global_environment; Object goal_env; @@ -59,7 +67,6 @@ class Interpreter { const std::unordered_map>>& named); Object eval_pair(const Object& o, const std::shared_ptr& env); - void eval_args(Arguments* args, const std::shared_ptr& env); ArgumentSpec parse_arg_spec(const Object& form, Object& rest); Object quasiquote_helper(const Object& form, const std::shared_ptr& env); @@ -198,6 +205,9 @@ class Interpreter { Object eval_ash(const Object& form, Arguments& args, const std::shared_ptr& env); + Object eval_symbol_to_string(const Object& form, + Arguments& args, + const std::shared_ptr& env); // specials Object eval_define(const Object& form, @@ -239,6 +249,11 @@ class Interpreter { Arguments& args, const std::shared_ptr& env)> builtin_forms; + + std::unordered_map< + std::string, + std::function&)>> + m_custom_forms; std::unordered_map f) { // exit if display window was closed if (glfwWindowShouldClose(Display::display)) { // Display::KillDisplay(Display::display); - MasterExit = 1; + MasterExit = 2; } } } diff --git a/goal_src/dgos/engine.gd b/goal_src/dgos/engine.gd new file mode 100644 index 0000000000..44d32faccd --- /dev/null +++ b/goal_src/dgos/engine.gd @@ -0,0 +1,295 @@ +("ENGINE.CGO" + ("types-h.o" "types-h") + ("vu1-macros.o" "vu1-macros") + + ;; the "math" section + ("math.o" "math") + ("vector-h.o" "vector-h") + ("gravity-h.o" "gravity-h") + ("bounding-box-h.o" "bounding-box-h") + ("matrix-h.o" "matrix-h") + ("quaternion-h.o" "quaternion-h") + ("euler-h.o" "euler-h") + ("transform-h.o" "transform-h") + ("geometry-h.o" "geometry-h") + ("trigonometry-h.o" "trigonometry-h") + ("transformq-h.o" "transformq-h") + ("bounding-box.o" "bounding-box") + ("matrix.o" "matrix") + ("transform.o" "transform") + ("quaternion.o" "quaternion") + ("euler.o" "euler") + ("geometry.o" "geometry") + ("trigonometry.o" "trigonometry") + + + ("gsound-h.o" "gsound-h") + ("timer-h.o" "timer-h") + ("timer.o" "timer") + ("vif-h.o" "vif-h") + ("dma-h.o" "dma-h") + ("video-h.o" "video-h") + ("vu1-user-h.o" "vu1-user-h") + ("dma.o" "dma") + ("dma-buffer.o" "dma-buffer") + ("dma-bucket.o" "dma-bucket") + ("dma-disasm.o" "dma-disasm") + ("pad.o" "pad") + ("gs.o" "gs") + ("display-h.o" "display-h") + ("vector.o" "vector") + ("file-io.o" "file-io") + ("loader-h.o" "loader-h") + ("texture-h.o" "texture-h") + ("level-h.o" "level-h") + ("math-camera-h.o" "math-camera-h") + ("math-camera.o" "math-camera") + ("font-h.o" "font-h") + ("decomp-h.o" "decomp-h") + ("display.o" "display") + ("connect.o" "connect") + ("text-h.o" "text-h") + ("settings-h.o" "settings-h") + ("capture.o" "capture") + ("memory-usage-h.o" "memory-usage-h") + ("texture.o" "texture") + ("main-h.o" "main-h") + ("mspace-h.o" "mspace-h") + ("drawable-h.o" "drawable-h") + ("drawable-group-h.o" "drawable-group-h") + ("drawable-inline-array-h.o" "drawable-inline-array-h") + ("draw-node-h.o" "draw-node-h") + ("drawable-tree-h.o" "drawable-tree-h") + ("drawable-actor-h.o" "drawable-actor-h") + ("drawable-ambient-h.o" "drawable-ambient-h") + ("game-task-h.o" "game-task-h") + ("hint-control-h.o" "hint-control-h") + ("generic-h.o" "generic-h") + ("lights-h.o" "lights-h") + ("ocean-h.o" "ocean-h") + ("ocean-trans-tables.o" "ocean-trans-tables") + ("ocean-tables.o" "ocean-tables") + ("ocean-frames.o" "ocean-frames") + ("sky-h.o" "sky-h") + ("mood-h.o" "mood-h") + ("time-of-day-h.o" "time-of-day-h") + ("art-h.o" "art-h") + ("generic-vu1-h.o" "generic-vu1-h") + ("merc-h.o" "merc-h") + ("generic-merc-h.o" "generic-merc-h") + ("generic-tie-h.o" "generic-tie-h") + ("generic-work-h.o" "generic-work-h") + ("shadow-cpu-h.o" "shadow-cpu-h") + ("shadow-vu1-h.o" "shadow-vu1-h") + ("memcard-h.o" "memcard-h") + ("game-info-h.o" "game-info-h") + ("wind-h.o" "wind-h") + ("prototype-h.o" "prototype-h") + ("joint-h.o" "joint-h") + ("bones-h.o" "bones-h") + ("engines.o" "engines") + ("res-h.o" "res-h") + ("res.o" "res") + ("lights.o" "lights") + ("dynamics-h.o" "dynamics-h") + ("surface-h.o" "surface-h") + ("pat-h.o" "pat-h") + ("fact-h.o" "fact-h") + ("aligner-h.o" "aligner-h") + ("game-h.o" "game-h") + ("generic-obs-h.o" "generic-obs-h") + ("pov-camera-h.o" "pov-camera-h") + ("sync-info-h.o" "sync-info-h") + ("smush-control-h.o" "smush-control-h") + ("trajectory-h.o" "trajectory-h") + ("debug-h.o" "debug-h") + ("joint-mod-h.o" "joint-mod-h") + ("collide-func-h.o" "collide-func-h") + ("collide-mesh-h.o" "collide-mesh-h") + ("collide-shape-h.o" "collide-shape-h") + ("collide-target-h.o" "collide-target-h") + ("collide-touch-h.o" "collide-touch-h") + ("collide-edge-grab-h.o" "collide-edge-grab-h") + ("process-drawable-h.o" "process-drawable-h") + ("effect-control-h.o" "effect-control-h") + ("collide-frag-h.o" "collide-frag-h") + ("projectiles-h.o" "projectiles-h") + ("target-h.o" "target-h") + ("depth-cue-h.o" "depth-cue-h") + ("stats-h.o" "stats-h") + ("bsp-h.o" "bsp-h") + ("collide-cache-h.o" "collide-cache-h") + ("collide-h.o" "collide-h") + ("shrubbery-h.o" "shrubbery-h") + ("tie-h.o" "tie-h") + ("tfrag-h.o" "tfrag-h") + ("background-h.o" "background-h") + ("subdivide-h.o" "subdivide-h") + ("entity-h.o" "entity-h") + ("sprite-h.o" "sprite-h") + ("shadow-h.o" "shadow-h") + ("eye-h.o" "eye-h") + ("sparticle-launcher-h.o" "sparticle-launcher-h") + ("sparticle-h.o" "sparticle-h") + ("actor-link-h.o" "actor-link-h") + ("camera-h.o" "camera-h") + ("cam-debug-h.o" "cam-debug-h") + ("cam-interface-h.o" "cam-interface-h") + ("cam-update-h.o" "cam-update-h") + ("assert-h.o" "assert-h") + ("hud-h.o" "hud-h") + ("progress-h.o" "progress-h") + ("rpc-h.o" "rpc-h") + ("path-h.o" "path-h") + ("navigate-h.o" "navigate-h") + ("load-dgo.o" "load-dgo") + ("ramdisk.o" "ramdisk") + ("gsound.o" "gsound") + ("transformq.o" "transformq") + ("collide-func.o" "collide-func") + ("joint.o" "joint") + ("cylinder.o" "cylinder") + ("wind.o" "wind") + ("bsp.o" "bsp") + ("subdivide.o" "subdivide") + ("sprite.o" "sprite") + ("sprite-distort.o" "sprite-distort") + ("debug-sphere.o" "debug-sphere") + ("debug.o" "debug") + ("merc-vu1.o" "merc-vu1") + ("merc-blend-shape.o" "merc-blend-shape") + ("merc.o" "merc") + ("ripple.o" "ripple") + ("bones.o" "bones") + ("generic-vu0.o" "generic-vu0") + ("generic.o" "generic") + ("generic-vu1.o" "generic-vu1") + ("generic-effect.o" "generic-effect") + ("generic-merc.o" "generic-merc") + ("generic-tie.o" "generic-tie") + ("shadow-cpu.o" "shadow-cpu") + ("shadow-vu1.o" "shadow-vu1") + ("depth-cue.o" "depth-cue") + ("font.o" "font") + ("decomp.o" "decomp") + ("background.o" "background") + ("draw-node.o" "draw-node") + ("shrubbery.o" "shrubbery") + ("shrub-work.o" "shrub-work") + ("tfrag-near.o" "tfrag-near") + ("tfrag.o" "tfrag") + ("tfrag-methods.o" "tfrag-methods") + ("tfrag-work.o" "tfrag-work") + ("tie.o" "tie") + ("tie-near.o" "tie-near") + ("tie-work.o" "tie-work") + ("tie-methods.o" "tie-methods") + ("sync-info.o" "sync-info") + ("trajectory.o" "trajectory") + ("sparticle-launcher.o" "sparticle-launcher") + ("sparticle.o" "sparticle") + ("entity-table.o" "entity-table") + ("loader.o" "loader") + ("task-control-h.o" "task-control-h") + ("game-info.o" "game-info") + ("game-save.o" "game-save") + ("settings.o" "settings") + ("mood-tables.o" "mood-tables") + ("mood.o" "mood") + ("weather-part.o" "weather-part") + ("time-of-day.o" "time-of-day") + ("sky-utils.o" "sky-utils") + ("sky.o" "sky") + ("sky-tng.o" "sky-tng") + ("load-boundary-h.o" "load-boundary-h") + ("load-boundary.o" "load-boundary") + ("load-boundary-data.o" "load-boundary-data") + ("level-info.o" "level-info") + ("level.o" "level") + ("text.o" "text") + ("collide-probe.o" "collide-probe") + ("collide-frag.o" "collide-frag") + ("collide-mesh.o" "collide-mesh") + ("collide-touch.o" "collide-touch") + ("collide-edge-grab.o" "collide-edge-grab") + ("collide-shape.o" "collide-shape") + ("collide-shape-rider.o" "collide-shape-rider") + ("collide.o" "collide") + ("collide-planes.o" "collide-planes") + ("merc-death.o" "merc-death") + ("water-h.o" "water-h") + ("camera.o" "camera") + ("cam-interface.o" "cam-interface") + ("cam-master.o" "cam-master") + ("cam-states.o" "cam-states") + ("cam-states-dbg.o" "cam-states-dbg") + ("cam-combiner.o" "cam-combiner") + ("cam-update.o" "cam-update") + ("vol-h.o" "vol-h") + ("cam-layout.o" "cam-layout") + ("cam-debug.o" "cam-debug") + ("cam-start.o" "cam-start") + ("process-drawable.o" "process-drawable") + ("hint-control.o" "hint-control") + ("ambient.o" "ambient") + ("assert.o" "assert") + ("generic-obs.o" "generic-obs") + ("target-util.o" "target-util") + ("target-part.o" "target-part") + ("collide-reaction-target.o" "collide-reaction-target") + ("logic-target.o" "logic-target") + ("sidekick.o" "sidekick") + ("voicebox.o" "voicebox") + ("target-handler.o" "target-handler") + ("target.o" "target") + ("target2.o" "target2") + ("target-death.o" "target-death") + ("menu.o" "menu") + ("drawable.o" "drawable") + ("drawable-group.o" "drawable-group") + ("drawable-inline-array.o" "drawable-inline-array") + ("drawable-tree.o" "drawable-tree") + ("prototype.o" "prototype") + ("main-collide.o" "main-collide") + ("video.o" "video") + ("main.o" "main") + ("collide-cache.o" "collide-cache") + ("relocate.o" "relocate") + ("memory-usage.o" "memory-usage") + ("entity.o" "entity") + ("path.o" "path") + ("vol.o" "vol") + ("navigate.o" "navigate") + ("aligner.o" "aligner") + ("effect-control.o" "effect-control") + ("water.o" "water") + ("collectables-part.o" "collectables-part") + ("collectables.o" "collectables") + ("task-control.o" "task-control") + ("process-taskable.o" "process-taskable") + ("pov-camera.o" "pov-camera") + ("powerups.o" "powerups") + ("crates.o" "crates") + ("hud.o" "hud") + ("hud-classes.o" "hud-classes") + ("progress-static.o" "progress-static") + ("progress-part.o" "progress-part") + ("progress-draw.o" "progress-draw") + ("progress.o" "progress") + ("credits.o" "credits") + ("projectiles.o" "projectiles") + ("ocean.o" "ocean") + ("ocean-vu0.o" "ocean-vu0") + ("ocean-texture.o" "ocean-texture") + ("ocean-mid.o" "ocean-mid") + ("ocean-transition.o" "ocean-transition") + ("ocean-near.o" "ocean-near") + ("shadow.o" "shadow") + ("eye.o" "eye") + ("glist-h.o" "glist-h") + ("glist.o" "glist") + ("anim-tester.o" "anim-tester") + ("viewer.o" "viewer") + ("part-tester.o" "part-tester") + ("default-menu.o" "default-menu") + ) \ No newline at end of file diff --git a/goal_src/dgos/game.gd b/goal_src/dgos/game.gd new file mode 100644 index 0000000000..331d940774 --- /dev/null +++ b/goal_src/dgos/game.gd @@ -0,0 +1,330 @@ +("GAME.CGO" + ("types-h.o" "types-h") + ("vu1-macros.o" "vu1-macros") + ("math.o" "math") + ("vector-h.o" "vector-h") + ("gravity-h.o" "gravity-h") + ("bounding-box-h.o" "bounding-box-h") + ("matrix-h.o" "matrix-h") + ("quaternion-h.o" "quaternion-h") + ("euler-h.o" "euler-h") + ("transform-h.o" "transform-h") + ("geometry-h.o" "geometry-h") + ("trigonometry-h.o" "trigonometry-h") + ("transformq-h.o" "transformq-h") + ("bounding-box.o" "bounding-box") + ("matrix.o" "matrix") + ("transform.o" "transform") + ("quaternion.o" "quaternion") + ("euler.o" "euler") + ("geometry.o" "geometry") + ("trigonometry.o" "trigonometry") + ("gsound-h.o" "gsound-h") + ("timer-h.o" "timer-h") + ("timer.o" "timer") + ("vif-h.o" "vif-h") + ("dma-h.o" "dma-h") + ("video-h.o" "video-h") + ("vu1-user-h.o" "vu1-user-h") + ("dma.o" "dma") + ("dma-buffer.o" "dma-buffer") + ("dma-bucket.o" "dma-bucket") + ("dma-disasm.o" "dma-disasm") + ("pad.o" "pad") + ("gs.o" "gs") + ("display-h.o" "display-h") + ("vector.o" "vector") + ("file-io.o" "file-io") + ("loader-h.o" "loader-h") + ("texture-h.o" "texture-h") + ("level-h.o" "level-h") + ("math-camera-h.o" "math-camera-h") + ("math-camera.o" "math-camera") + ("font-h.o" "font-h") + ("decomp-h.o" "decomp-h") + ("display.o" "display") + ("connect.o" "connect") + ("text-h.o" "text-h") + ("settings-h.o" "settings-h") + ("capture.o" "capture") + ("memory-usage-h.o" "memory-usage-h") + ("texture.o" "texture") + ("main-h.o" "main-h") + ("mspace-h.o" "mspace-h") + ("drawable-h.o" "drawable-h") + ("drawable-group-h.o" "drawable-group-h") + ("drawable-inline-array-h.o" "drawable-inline-array-h") + ("draw-node-h.o" "draw-node-h") + ("drawable-tree-h.o" "drawable-tree-h") + ("drawable-actor-h.o" "drawable-actor-h") + ("drawable-ambient-h.o" "drawable-ambient-h") + ("game-task-h.o" "game-task-h") + ("hint-control-h.o" "hint-control-h") + ("generic-h.o" "generic-h") + ("lights-h.o" "lights-h") + ("ocean-h.o" "ocean-h") + ("ocean-trans-tables.o" "ocean-trans-tables") + ("ocean-tables.o" "ocean-tables") + ("ocean-frames.o" "ocean-frames") + ("sky-h.o" "sky-h") + ("mood-h.o" "mood-h") + ("time-of-day-h.o" "time-of-day-h") + ("art-h.o" "art-h") + ("generic-vu1-h.o" "generic-vu1-h") + ("merc-h.o" "merc-h") + ("generic-merc-h.o" "generic-merc-h") + ("generic-tie-h.o" "generic-tie-h") + ("generic-work-h.o" "generic-work-h") + ("shadow-cpu-h.o" "shadow-cpu-h") + ("shadow-vu1-h.o" "shadow-vu1-h") + ("memcard-h.o" "memcard-h") + ("game-info-h.o" "game-info-h") + ("wind-h.o" "wind-h") + ("prototype-h.o" "prototype-h") + ("joint-h.o" "joint-h") + ("bones-h.o" "bones-h") + ("engines.o" "engines") + ("res-h.o" "res-h") + ("res.o" "res") + ("lights.o" "lights") + ("dynamics-h.o" "dynamics-h") + ("surface-h.o" "surface-h") + ("pat-h.o" "pat-h") + ("fact-h.o" "fact-h") + ("aligner-h.o" "aligner-h") + ("game-h.o" "game-h") + ("generic-obs-h.o" "generic-obs-h") + ("pov-camera-h.o" "pov-camera-h") + ("sync-info-h.o" "sync-info-h") + ("smush-control-h.o" "smush-control-h") + ("trajectory-h.o" "trajectory-h") + ("debug-h.o" "debug-h") + ("joint-mod-h.o" "joint-mod-h") + ("collide-func-h.o" "collide-func-h") + ("collide-mesh-h.o" "collide-mesh-h") + ("collide-shape-h.o" "collide-shape-h") + ("collide-target-h.o" "collide-target-h") + ("collide-touch-h.o" "collide-touch-h") + ("collide-edge-grab-h.o" "collide-edge-grab-h") + ("process-drawable-h.o" "process-drawable-h") + ("effect-control-h.o" "effect-control-h") + ("collide-frag-h.o" "collide-frag-h") + ("projectiles-h.o" "projectiles-h") + ("target-h.o" "target-h") + ("depth-cue-h.o" "depth-cue-h") + ("stats-h.o" "stats-h") + ("bsp-h.o" "bsp-h") + ("collide-cache-h.o" "collide-cache-h") + ("collide-h.o" "collide-h") + ("shrubbery-h.o" "shrubbery-h") + ("tie-h.o" "tie-h") + ("tfrag-h.o" "tfrag-h") + ("background-h.o" "background-h") + ("subdivide-h.o" "subdivide-h") + ("entity-h.o" "entity-h") + ("sprite-h.o" "sprite-h") + ("shadow-h.o" "shadow-h") + ("eye-h.o" "eye-h") + ("sparticle-launcher-h.o" "sparticle-launcher-h") + ("sparticle-h.o" "sparticle-h") + ("actor-link-h.o" "actor-link-h") + ("camera-h.o" "camera-h") + ("cam-debug-h.o" "cam-debug-h") + ("cam-interface-h.o" "cam-interface-h") + ("cam-update-h.o" "cam-update-h") + ("assert-h.o" "assert-h") + ("hud-h.o" "hud-h") + ("progress-h.o" "progress-h") + ("rpc-h.o" "rpc-h") + ("path-h.o" "path-h") + ("navigate-h.o" "navigate-h") + ("load-dgo.o" "load-dgo") + ("ramdisk.o" "ramdisk") + ("gsound.o" "gsound") + ("transformq.o" "transformq") + ("collide-func.o" "collide-func") + ("joint.o" "joint") + ("cylinder.o" "cylinder") + ("wind.o" "wind") + ("bsp.o" "bsp") + ("subdivide.o" "subdivide") + ("sprite.o" "sprite") + ("sprite-distort.o" "sprite-distort") + ("debug-sphere.o" "debug-sphere") + ("debug.o" "debug") + ("merc-vu1.o" "merc-vu1") + ("merc-blend-shape.o" "merc-blend-shape") + ("merc.o" "merc") + ("ripple.o" "ripple") + ("bones.o" "bones") + ("generic-vu0.o" "generic-vu0") + ("generic.o" "generic") + ("generic-vu1.o" "generic-vu1") + ("generic-effect.o" "generic-effect") + ("generic-merc.o" "generic-merc") + ("generic-tie.o" "generic-tie") + ("shadow-cpu.o" "shadow-cpu") + ("shadow-vu1.o" "shadow-vu1") + ("depth-cue.o" "depth-cue") + ("font.o" "font") + ("decomp.o" "decomp") + ("background.o" "background") + ("draw-node.o" "draw-node") + ("shrubbery.o" "shrubbery") + ("shrub-work.o" "shrub-work") + ("tfrag-near.o" "tfrag-near") + ("tfrag.o" "tfrag") + ("tfrag-methods.o" "tfrag-methods") + ("tfrag-work.o" "tfrag-work") + ("tie.o" "tie") + ("tie-near.o" "tie-near") + ("tie-work.o" "tie-work") + ("tie-methods.o" "tie-methods") + ("sync-info.o" "sync-info") + ("trajectory.o" "trajectory") + ("sparticle-launcher.o" "sparticle-launcher") + ("sparticle.o" "sparticle") + ("entity-table.o" "entity-table") + ("loader.o" "loader") + ("task-control-h.o" "task-control-h") + ("game-info.o" "game-info") + ("game-save.o" "game-save") + ("settings.o" "settings") + ("mood-tables.o" "mood-tables") + ("mood.o" "mood") + ("weather-part.o" "weather-part") + ("time-of-day.o" "time-of-day") + ("sky-utils.o" "sky-utils") + ("sky.o" "sky") + ("sky-tng.o" "sky-tng") + ("load-boundary-h.o" "load-boundary-h") + ("load-boundary.o" "load-boundary") + ("load-boundary-data.o" "load-boundary-data") + ("level-info.o" "level-info") + ("level.o" "level") + ("text.o" "text") + ("collide-probe.o" "collide-probe") + ("collide-frag.o" "collide-frag") + ("collide-mesh.o" "collide-mesh") + ("collide-touch.o" "collide-touch") + ("collide-edge-grab.o" "collide-edge-grab") + ("collide-shape.o" "collide-shape") + ("collide-shape-rider.o" "collide-shape-rider") + ("collide.o" "collide") + ("collide-planes.o" "collide-planes") + ("merc-death.o" "merc-death") + ("water-h.o" "water-h") + ("camera.o" "camera") + ("cam-interface.o" "cam-interface") + ("cam-master.o" "cam-master") + ("cam-states.o" "cam-states") + ("cam-states-dbg.o" "cam-states-dbg") + ("cam-combiner.o" "cam-combiner") + ("cam-update.o" "cam-update") + ("vol-h.o" "vol-h") + ("cam-layout.o" "cam-layout") + ("cam-debug.o" "cam-debug") + ("cam-start.o" "cam-start") + ("process-drawable.o" "process-drawable") + ("hint-control.o" "hint-control") + ("ambient.o" "ambient") + ("assert.o" "assert") + ("generic-obs.o" "generic-obs") + ("target-util.o" "target-util") + ("target-part.o" "target-part") + ("collide-reaction-target.o" "collide-reaction-target") + ("logic-target.o" "logic-target") + ("sidekick.o" "sidekick") + ("voicebox.o" "voicebox") + ("target-handler.o" "target-handler") + ("target.o" "target") + ("target2.o" "target2") + ("target-death.o" "target-death") + ("menu.o" "menu") + ("drawable.o" "drawable") + ("drawable-group.o" "drawable-group") + ("drawable-inline-array.o" "drawable-inline-array") + ("drawable-tree.o" "drawable-tree") + ("prototype.o" "prototype") + ("main-collide.o" "main-collide") + ("video.o" "video") + ("main.o" "main") + ("collide-cache.o" "collide-cache") + ("relocate.o" "relocate") + ("memory-usage.o" "memory-usage") + ("entity.o" "entity") + ("path.o" "path") + ("vol.o" "vol") + ("navigate.o" "navigate") + ("aligner.o" "aligner") + ("effect-control.o" "effect-control") + ("water.o" "water") + ("collectables-part.o" "collectables-part") + ("collectables.o" "collectables") + ("task-control.o" "task-control") + ("process-taskable.o" "process-taskable") + ("pov-camera.o" "pov-camera") + ("powerups.o" "powerups") + ("crates.o" "crates") + ("hud.o" "hud") + ("hud-classes.o" "hud-classes") + ("progress-static.o" "progress-static") + ("progress-part.o" "progress-part") + ("progress-draw.o" "progress-draw") + ("progress.o" "progress") + ("credits.o" "credits") + ("projectiles.o" "projectiles") + ("ocean.o" "ocean") + ("ocean-vu0.o" "ocean-vu0") + ("ocean-texture.o" "ocean-texture") + ("ocean-mid.o" "ocean-mid") + ("ocean-transition.o" "ocean-transition") + ("ocean-near.o" "ocean-near") + ("shadow.o" "shadow") + ("eye.o" "eye") + ("glist-h.o" "glist-h") + ("glist.o" "glist") + ("anim-tester.o" "anim-tester") + ("viewer.o" "viewer") + ("part-tester.o" "part-tester") + ("default-menu.o" "default-menu") + ("dir-tpages.go" "dir-tpages") + ("tpage-463.go" "tpage-463") + ("tpage-2.go" "tpage-2") + ("tpage-880.go" "tpage-880") + ("tpage-256.go" "tpage-256") + ("tpage-1278.go" "tpage-1278") + ("texture-upload.o" "texture-upload") + ("tpage-1032.go" "tpage-1032") + ("tpage-62.go" "tpage-62") + ("tpage-1532.go" "tpage-1532") + ("fuel-cell-ag.go" "fuel-cell") + ("money-ag.go" "money") + ("buzzer-ag.go" "buzzer") + ("ecovalve-ag-ART-GAME.go" "ecovalve") + ("crate-ag.go" "crate") + ("speaker-ag.go" "speaker") + ("fuelcell-naked-ag.go" "fuelcell-naked") + ("eichar-ag.go" "eichar") + ("sidekick-ag.go" "sidekick") + ("deathcam-ag.go" "deathcam") + ("game-cnt.go" "game-cnt") + ("rigid-body-h.o" "rigid-body-h") + ("water-anim.o" "water-anim") + ("dark-eco-pool.o" "dark-eco-pool") + ("rigid-body.o" "rigid-body") + ("nav-enemy-h.o" "nav-enemy-h") + ("nav-enemy.o" "nav-enemy") + ("baseplat.o" "baseplat") + ("basebutton.o" "basebutton") + ("tippy.o" "tippy") + ("joint-exploder.o" "joint-exploder") + ("babak.o" "babak") + ("sharkey.o" "sharkey") + ("orb-cache.o" "orb-cache") + ("plat.o" "plat") + ("plat-button.o" "plat-button") + ("plat-eco.o" "plat-eco") + ("ropebridge.o" "ropebridge") + ("ticky.o" "ticky") + ) diff --git a/goal_src/dgos/kernel.gd b/goal_src/dgos/kernel.gd new file mode 100644 index 0000000000..4df9a0e142 --- /dev/null +++ b/goal_src/dgos/kernel.gd @@ -0,0 +1,10 @@ +("KERNEL.CGO" + ("gcommon.o" "gcommon") + ("gstring-h.o" "gstring-h") + ("gkernel-h.o" "gkernel-h") + ("gkernel.o" "gkernel") + ("pskernel.o" "pskernel") + ("gstring.o" "gstring") + ("dgo-h.o" "dgo-h") + ("gstate.o" "gstate") + ) \ No newline at end of file diff --git a/goal_src/dgos/vi1.gd b/goal_src/dgos/vi1.gd new file mode 100644 index 0000000000..150358c84c --- /dev/null +++ b/goal_src/dgos/vi1.gd @@ -0,0 +1,57 @@ +("VI1.DGO" + ("villagep-obs.o" "villagep-obs") + ("oracle.o" "oracle") + ("farmer.o" "farmer") + ("explorer.o" "explorer") + ("assistant.o" "assistant") + ("sage.o" "sage") + ("yakow.o" "yakow") + ("village-obs-VI1.o" "village-obs") + ("fishermans-boat.o" "fishermans-boat") + ("village1-part.o" "village1-part") + ("village1-part2.o" "village1-part2") + ("sequence-a-village1.o" "sequence-a-village1") + ("tpage-398.go" "tpage-398") + ("tpage-400.go" "tpage-400") + ("tpage-399.go" "tpage-399") + ("tpage-401.go" "tpage-401") + ("tpage-1470.go" "tpage-1470") + ("assistant-ag.go" "assistant") + ("evilplant-ag.go" "evilplant") + ("explorer-ag.go" "explorer") + ("farmer-ag.go" "farmer") + ("fishermans-boat-ag.go" "fishermans-boat") + ("hutlamp-ag.go" "hutlamp") + ("mayorgears-ag.go" "mayorgears") + ("medres-beach-ag.go" "medres-beach") + ("medres-beach1-ag.go" "medres-beach1") + ("medres-beach2-ag.go" "medres-beach2") + ("medres-beach3-ag.go" "medres-beach3") + ("medres-jungle-ag.go" "medres-jungle") + ("medres-jungle1-ag.go" "medres-jungle1") + ("medres-jungle2-ag.go" "medres-jungle2") + ("medres-misty-ag.go" "medres-misty") + ("medres-training-ag.go" "medres-training") + ("medres-village11-ag.go" "medres-village11") + ("medres-village12-ag.go" "medres-village12") + ("medres-village13-ag.go" "medres-village13") + ("oracle-ag-VI1.go" "oracle") + ("orb-cache-top-ag-VI1.go" "orb-cache-top") + ("reflector-middle-ag.go" "reflector-middle") + ("revcycle-ag.go" "revcycle") + ("revcycleprop-ag.go" "revcycleprop") + ("ropebridge-32-ag.go" "ropebridge-32") + ("sage-ag.go" "sage") + ("sagesail-ag.go" "sagesail") + ("sharkey-ag-VI1.go" "sharkey") + ("villa-starfish-ag.go" "villa-starfish") + ("village-cam-ag-VI1.go" "village-cam") + ("village1cam-ag.go" "village1cam") + ("warp-gate-switch-ag-VI1-VI3.go" "warp-gate-switch") + ("warpgate-ag.go" "warpgate") + ("water-anim-village1-ag.go" "water-anim-village1") + ("windmill-sail-ag.go" "windmill-sail") + ("windspinner-ag.go" "windspinner") + ("yakow-ag.go" "yakow") + ("village1-vis.go" "village1-vis") + ) \ No newline at end of file diff --git a/goal_src/engine/ui/text.gc b/goal_src/engine/ui/text.gc index af762a8bfd..9dde22be71 100644 --- a/goal_src/engine/ui/text.gc +++ b/goal_src/engine/ui/text.gc @@ -189,6 +189,8 @@ (s3-1 s2-1 (-> *temp-string* data) load-status heap 0) ) ) + (format 0 "loaded text ~A~%" *common-text*) + (format 0 "~A~%" (lookup-text! *common-text* (game-text-id continue-without-saving) #f)) ) (if (<= (the-as int (-> curr-text value)) 0) (set! (-> curr-text value) (the-as object #f)) @@ -196,6 +198,7 @@ ) (set! v0-2 0) (label cfg-27) + v0-2 ) diff --git a/goal_src/game.gp b/goal_src/game.gp new file mode 100644 index 0000000000..e2bced6698 --- /dev/null +++ b/goal_src/game.gp @@ -0,0 +1,626 @@ +;;-*-Lisp-*- + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Jak 1 Project File +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; This file sets up the OpenGOAL build system for Jak 1. + +;;;;;;;;;;;;;;;;;;;;;;; +;; Build system macros +;;;;;;;;;;;;;;;;;;;;;;; + +;; use defmacro to define goos macros. +(define defmacro defsmacro) +(define defun desfun) + +(defun gc-file->o-file (filename) + "Get the name of the object file for the given GOAL (*.gc) source file." + (string-append "out/obj/" (stem filename) ".o") + ) + +(defmacro goal-src (src-file &rest deps) + "Add a GOAL source file with the given dependencies" + `(defstep :in ,(string-append "goal_src/" src-file) + ;; use goal compiler + :tool 'goalc + ;; will output the obj file + :out '(,(gc-file->o-file src-file)) + ;; dependencies are the obj files + :dep '(,@(apply gc-file->o-file deps)) + ) + ) + +(defun make-src-sequence-elt (current previous prefix) + "Helper for goal-src-sequence" + `(defstep :in ,(string-append "goal_src/" prefix current) + :tool 'goalc + :out '(,(gc-file->o-file current)) + :dep '(#|"iso/KERNEL.CGO"|# + ,(gc-file->o-file previous)) + ) + ) + +(defmacro goal-src-sequence (prefix &key (deps '()) &rest sequence) + "Add a sequence of GOAL files (each depending on the previous) in the given directory, + with all depending on the given deps." + (let* ((first-thing `(goal-src ,(string-append prefix (first sequence)) ,@deps)) + (result (cons first-thing '())) + (iter result)) + + (let ((prev (first sequence)) + (in-iter (rest sequence))) + + (while (not (null? in-iter)) + ;; (fmt #t "{} dep on {}\n" (first in-iter) prev) + (let ((next (make-src-sequence-elt (first in-iter) prev prefix))) + (set-cdr! iter (cons next '())) + (set! iter (cdr iter)) + ) + + (set! prev (car in-iter)) + (set! in-iter (cdr in-iter)) + ) + ) + + `(begin ,@result) + ) + ) + +(defmacro cgo (output-name desc-file-name &rest objs) + "Add a CGO with the given output name (in out/iso) and input name (in goal_src/dgos)" + `(defstep :in ,(string-append "goal_src/dgos/" desc-file-name) + :tool 'dgo + :out '(,(string-append "out/iso/" output-name)) + ) + ) + +(defun tpage-name (id) + (fmt #f "tpage-{}.go" id) + ) + +(defmacro copy-texture (tpage-id) + `(defstep :in ,(string-append "decompiler_out/raw_obj/" (tpage-name tpage-id)) + :tool 'copy + :out '(,(string-append "out/obj/" (tpage-name tpage-id))) + ) + ) + +(defmacro copy-textures (&rest ids) + `(begin + ,@(apply (lambda (x) `(copy-texture ,x)) ids) + ) + ) + +(defmacro copy-go (name) + `(defstep :in ,(string-append "decompiler_out/raw_obj/" name ".go") + :tool 'copy + :out '(,(string-append "out/obj/" name ".go")) + ) + ) + +(defmacro copy-gos (&rest gos) + `(begin + ,@(apply (lambda (x) `(copy-go ,x)) gos) + ) + ) + +(defmacro group (name &rest stuff) + `(defstep :in "" + :tool 'group + :out '(,(string-append "GROUP:" name)) + :dep '(,@stuff)) + ) + +;;;;;;;;;;;;;;;;;;;;;; +;; CGO's +;;;;;;;;;;;;;;;;;;;;;; +(cgo "KERNEL.CGO" "kernel.gd") +(cgo "ENGINE.CGO" "engine.gd") +(cgo "GAME.CGO" "game.gd") + +;;;;;;;;;;;;;;;;; +;; GOAL Kernel +;;;;;;;;;;;;;;;;; + +;; These are set up with proper dependencies + +(goal-src "kernel/gcommon.gc") +(goal-src "kernel/gstring-h.gc") +(goal-src "kernel/gkernel-h.gc" + "gcommon" + "gstring-h") +(goal-src "kernel/gkernel.gc" + "gkernel-h") +(goal-src "kernel/pskernel.gc" + "gcommon" + "gkernel-h") +(goal-src "kernel/gstring.gc" + "gcommon" + "gstring-h") +(goal-src "kernel/dgo-h.gc") +(goal-src "kernel/gstate.gc" + "gkernel") + + +;;;;;;;;;;;;;;;;;;;;;;;; +;; Weird special things +;;;;;;;;;;;;;;;;;;;;;;;; + +;; The tpage directory +(defstep :in "assets/tpage-dir.txt" + :tool 'tpage-dir + :out '("out/obj/dir-tpages.go") + ) + +;; the count file. +(defstep :in "assets/game_count.txt" + :tool 'game-cnt + :out '("out/obj/game-cnt.go") + ) + + +;;;;;;;;;;;;;;;;;;;;; +;; Textures (Common) +;;;;;;;;;;;;;;;;;;;;; + +(copy-textures 463 2 880 256 1278 1032 62 1532) + + +;;;;;;;;;;;;;;;;;;;;; +;; Art (Common) +;;;;;;;;;;;;;;;;;;;;; + +(copy-gos + "fuel-cell-ag" + "money-ag" + "buzzer-ag" + "ecovalve-ag-ART-GAME" + "crate-ag" + "speaker-ag" + "fuelcell-naked-ag" + "eichar-ag" + "sidekick-ag" + "deathcam-ag" + ) + +;;;;;;;;;;;;;;;;;;;;; +;; Text +;;;;;;;;;;;;;;;;;;;;; + +(defstep :in "assets/game_text.txt" + :tool 'text + :out '("out/iso/0COMMON.TXT" + "out/iso/1COMMON.TXT" + "out/iso/2COMMON.TXT" + "out/iso/3COMMON.TXT" + "out/iso/4COMMON.TXT" + "out/iso/5COMMON.TXT" + "out/iso/6COMMON.TXT") + ) + + +;;;;;;;;;;;;;;;;;;;;; +;; ISO Group +;;;;;;;;;;;;;;;;;;;;; +;; the iso group is a group of files required to boot. + +(group "iso" + "out/iso/0COMMON.TXT" + "out/iso/KERNEL.CGO" + "out/iso/GAME.CGO" + "out/iso/VI1.DGO" + ) + + +;;;;;;;;;;;;;;;;;;;;; +;; Village 1 +;;;;;;;;;;;;;;;;;;;;; + +;; the definition for the DGO file. +(cgo "VI1.DGO" + "vi1.gd" + ) + +;; the code +(goal-src-sequence + "levels/" + :deps ;; no idea what these depend on, make it depend on the whole engine + ("out/obj/default-menu.o") + + "village_common/villagep-obs.gc" + "village_common/oracle.gc" + "village1/farmer.gc" + "village1/explorer.gc" + "village1/assistant.gc" + "village1/sage.gc" + "village1/yakow.gc" + "village1/village-obs-VI1.gc" + "village1/fishermans-boat.gc" + "village1/village1-part.gc" + "village1/village1-part2.gc" + "village1/sequence-a-village1.gc" + ) + +;; the textures +(copy-textures 398 400 399 401 1470) + +;; the art +(copy-gos + "assistant-ag" + "evilplant-ag" + "explorer-ag" + "farmer-ag" + "fishermans-boat-ag" + "hutlamp-ag" + "mayorgears-ag" + "medres-beach-ag" + "medres-beach1-ag" + "medres-beach2-ag" + "medres-beach3-ag" + "medres-jungle-ag" + "medres-jungle1-ag" + "medres-jungle2-ag" + "medres-misty-ag" + "medres-training-ag" + "medres-village11-ag" + "medres-village12-ag" + "medres-village13-ag" + "oracle-ag-VI1" + "orb-cache-top-ag-VI1" + "reflector-middle-ag" + "revcycle-ag" + "revcycleprop-ag" + "ropebridge-32-ag" + "sage-ag" + "sagesail-ag" + "sharkey-ag-VI1" + "villa-starfish-ag" + "village-cam-ag-VI1" + "village1cam-ag" + "warp-gate-switch-ag-VI1-VI3" + "warpgate-ag" + "water-anim-village1-ag" + "windmill-sail-ag" + "windspinner-ag" + "yakow-ag" + "village1-vis" + ) + + +;;;;;;;;;;;;;;;;;;;;; +;; Game Engine Code +;;;;;;;;;;;;;;;;;;;;; + +;; We don't know the actual dependencies, but the build +;; order is a possibly ordering, and the goal-src-sequence +;; will force these to always build in this order. + +(goal-src-sequence + ;; prefix + "engine/" + + :deps + ("out/obj/gcommon.o" + "out/obj/gstate.o" + "out/obj/gstring.o" + "out/obj/gkernel.o" + ) + + ;; sources + "util/types-h.gc" + "ps2/vu1-macros.gc" + "math/math.gc" + "math/vector-h.gc" + "physics/gravity-h.gc" + "geometry/bounding-box-h.gc" + "math/matrix-h.gc" + "math/quaternion-h.gc" + "math/euler-h.gc" + "math/transform-h.gc" + "geometry/geometry-h.gc" + "math/trigonometry-h.gc" + "math/transformq-h.gc" + "geometry/bounding-box.gc" + "math/matrix.gc" + "math/transform.gc" + "math/quaternion.gc" + "math/euler.gc" + "geometry/geometry.gc" + "math/trigonometry.gc" + "sound/gsound-h.gc" + "ps2/timer-h.gc" + "ps2/timer.gc" + "ps2/vif-h.gc" + "dma/dma-h.gc" + "gfx/hw/video-h.gc" + "gfx/hw/vu1-user-h.gc" + "dma/dma.gc" + "dma/dma-buffer.gc" + "dma/dma-bucket.gc" + "dma/dma-disasm.gc" + "ps2/pad.gc" + "gfx/hw/gs.gc" + "gfx/hw/display-h.gc" + "math/vector.gc" + "load/file-io.gc" + "load/loader-h.gc" + "gfx/texture-h.gc" + "level/level-h.gc" + "camera/math-camera-h.gc" + "camera/math-camera.gc" + "gfx/font-h.gc" + "gfx/decomp-h.gc" + "gfx/hw/display.gc" + "engine/connect.gc" + "ui/text-h.gc" + "game/settings-h.gc" + "gfx/capture.gc" + "debug/memory-usage-h.gc" + "gfx/texture.gc" + "game/main-h.gc" + "anim/mspace-h.gc" + "draw/drawable-h.gc" + "draw/drawable-group-h.gc" + "draw/drawable-inline-array-h.gc" + "draw/draw-node-h.gc" + "draw/drawable-tree-h.gc" + "draw/drawable-actor-h.gc" + "draw/drawable-ambient-h.gc" + "game/task/game-task-h.gc" + "game/task/hint-control-h.gc" + "gfx/generic/generic-h.gc" + "gfx/lights-h.gc" + "gfx/ocean/ocean-h.gc" + "gfx/ocean/ocean-trans-tables.gc" + "gfx/ocean/ocean-tables.gc" + "gfx/ocean/ocean-frames.gc" + "gfx/sky/sky-h.gc" + "gfx/mood-h.gc" + "gfx/time-of-day-h.gc" + "data/art-h.gc" + "gfx/generic/generic-vu1-h.gc" + "gfx/merc/merc-h.gc" + "gfx/merc/generic-merc-h.gc" + "gfx/tie/generic-tie-h.gc" + "gfx/generic/generic-work-h.gc" + "gfx/shadow/shadow-cpu-h.gc" + "gfx/shadow/shadow-vu1-h.gc" + "ps2/memcard-h.gc" + "game/game-info-h.gc" + "gfx/wind-h.gc" + "gfx/tie/prototype-h.gc" + "anim/joint-h.gc" + "anim/bones-h.gc" + "engine/engines.gc" + "data/res-h.gc" + "data/res.gc" + "gfx/lights.gc" + "physics/dynamics-h.gc" + "target/surface-h.gc" + "target/pat-h.gc" + "game/fact-h.gc" + "anim/aligner-h.gc" + "game/game-h.gc" + "game/generic-obs-h.gc" + "camera/pov-camera-h.gc" + "util/sync-info-h.gc" + "util/smush-control-h.gc" + "physics/trajectory-h.gc" + "debug/debug-h.gc" + "target/joint-mod-h.gc" + "collide/collide-func-h.gc" + "collide/collide-mesh-h.gc" + "collide/collide-shape-h.gc" + "collide/collide-target-h.gc" + "collide/collide-touch-h.gc" + "collide/collide-edge-grab-h.gc" + "draw/process-drawable-h.gc" + "game/effect-control-h.gc" + "collide/collide-frag-h.gc" + "game/projectiles-h.gc" + "target/target-h.gc" + "gfx/depth-cue-h.gc" + "debug/stats-h.gc" + "gfx/vis/bsp-h.gc" + "collide/collide-cache-h.gc" + "collide/collide-h.gc" + "gfx/shrub/shrubbery-h.gc" + "gfx/tie/tie-h.gc" + "gfx/tfrag/tfrag-h.gc" + "gfx/background-h.gc" + "gfx/tfrag/subdivide-h.gc" + "entity/entity-h.gc" + "gfx/sprite/sprite-h.gc" + "gfx/shadow/shadow-h.gc" + "gfx/eye-h.gc" + "sparticle/sparticle-launcher-h.gc" + "sparticle/sparticle-h.gc" + "entity/actor-link-h.gc" + "camera/camera-h.gc" + "camera/cam-debug-h.gc" + "camera/cam-interface-h.gc" + "camera/cam-update-h.gc" + "debug/assert-h.gc" + "ui/hud-h.gc" + "ui/progress-h.gc" + "ps2/rpc-h.gc" + "nav/path-h.gc" + "nav/navigate-h.gc" + "load/load-dgo.gc" + "load/ramdisk.gc" + "sound/gsound.gc" + "math/transformq.gc" + "collide/collide-func.gc" + "anim/joint.gc" + "geometry/cylinder.gc" + "gfx/wind.gc" + "gfx/vis/bsp.gc" + "gfx/tfrag/subdivide.gc" + "gfx/sprite/sprite.gc" + "gfx/sprite/sprite-distort.gc" + "debug/debug-sphere.gc" + "debug/debug.gc" + "gfx/merc/merc-vu1.gc" + "gfx/merc/merc-blend-shape.gc" + "gfx/merc/merc.gc" + "gfx/ripple.gc" + "anim/bones.gc" + "gfx/generic/generic-vu0.gc" + "gfx/generic/generic.gc" + "gfx/generic/generic-vu1.gc" + "gfx/generic/generic-effect.gc" + "gfx/generic/generic-merc.gc" + "gfx/generic/generic-tie.gc" + "gfx/shadow/shadow-cpu.gc" + "gfx/shadow/shadow-vu1.gc" + "gfx/depth-cue.gc" + "gfx/font.gc" + "load/decomp.gc" + "gfx/background.gc" + "draw/draw-node.gc" + "gfx/shrub/shrubbery.gc" + "gfx/shrub/shrub-work.gc" + "gfx/tfrag/tfrag-near.gc" + "gfx/tfrag/tfrag.gc" + "gfx/tfrag/tfrag-methods.gc" + "gfx/tfrag/tfrag-work.gc" + "gfx/tie/tie.gc" + "gfx/tie/tie-near.gc" + "gfx/tie/tie-work.gc" + "gfx/tie/tie-methods.gc" + "util/sync-info.gc" + "physics/trajectory.gc" + "sparticle/sparticle-launcher.gc" + "sparticle/sparticle.gc" + "entity/entity-table.gc" + "load/loader.gc" + "game/task/task-control-h.gc" + "game/game-info.gc" + "game/game-save.gc" + "game/settings.gc" + "ambient/mood-tables.gc" + "ambient/mood.gc" + "ambient/weather-part.gc" + "gfx/time-of-day.gc" + "gfx/sky/sky-utils.gc" + "gfx/sky/sky.gc" + "gfx/sky/sky-tng.gc" + "level/load-boundary-h.gc" + "level/load-boundary.gc" + "level/load-boundary-data.gc" + "level/level-info.gc" + "level/level.gc" + "ui/text.gc" + "collide/collide-probe.gc" + "collide/collide-frag.gc" + "collide/collide-mesh.gc" + "collide/collide-touch.gc" + "collide/collide-edge-grab.gc" + "collide/collide-shape.gc" + "collide/collide-shape-rider.gc" + "collide/collide.gc" + "collide/collide-planes.gc" + "gfx/merc/merc-death.gc" + "gfx/water/water-h.gc" + "camera/camera.gc" + "camera/cam-interface.gc" + "camera/cam-master.gc" + "camera/cam-states.gc" + "camera/cam-states-dbg.gc" + "camera/cam-combiner.gc" + "camera/cam-update.gc" + "geometry/vol-h.gc" + "camera/cam-layout.gc" + "camera/cam-debug.gc" + "camera/cam-start.gc" + "draw/process-drawable.gc" + "game/task/hint-control.gc" + "ambient/ambient.gc" + "debug/assert.gc" + "game/generic-obs.gc" + "target/target-util.gc" + "target/target-part.gc" + "collide/collide-reaction-target.gc" + "target/logic-target.gc" + "target/sidekick.gc" + "game/voicebox.gc" + "target/target-handler.gc" + "target/target.gc" + "target/target2.gc" + "target/target-death.gc" + "debug/menu.gc" + "draw/drawable.gc" + "draw/drawable-group.gc" + "draw/drawable-inline-array.gc" + "draw/drawable-tree.gc" + "gfx/tie/prototype.gc" + "collide/main-collide.gc" + "game/video.gc" + "game/main.gc" + "collide/collide-cache.gc" + "entity/relocate.gc" + "debug/memory-usage.gc" + "entity/entity.gc" + "nav/path.gc" + "geometry/vol.gc" + "nav/navigate.gc" + "anim/aligner.gc" + "game/effect-control.gc" + "gfx/water/water.gc" + "game/collectables-part.gc" + "game/collectables.gc" + "game/task/task-control.gc" + "game/task/process-taskable.gc" + "camera/pov-camera.gc" + "game/powerups.gc" + "game/crates.gc" + "ui/hud.gc" + "ui/hud-classes.gc" + "ui/progress/progress-static.gc" + "ui/progress/progress-part.gc" + "ui/progress/progress-draw.gc" + "ui/progress/progress.gc" + "ui/credits.gc" + "game/projectiles.gc" + "gfx/ocean/ocean.gc" + "gfx/ocean/ocean-vu0.gc" + "gfx/ocean/ocean-texture.gc" + "gfx/ocean/ocean-mid.gc" + "gfx/ocean/ocean-transition.gc" + "gfx/ocean/ocean-near.gc" + "gfx/shadow/shadow.gc" + "gfx/eye.gc" + "util/glist-h.gc" + "util/glist.gc" + "debug/anim-tester.gc" + "debug/viewer.gc" + "debug/part-tester.gc" + "debug/default-menu.gc" + ) + +(goal-src-sequence + "levels/common/" + :deps ("out/obj/default-menu.o") + "texture-upload.gc" + "rigid-body-h.gc" + "water-anim.gc" + "dark-eco-pool.gc" + "rigid-body.gc" + "nav-enemy-h.gc" + "nav-enemy.gc" + "baseplat.gc" + "basebutton.gc" + "tippy.gc" + "joint-exploder.gc" + "babak.gc" + "sharkey.gc" + "orb-cache.gc" + "plat.gc" + "plat-button.gc" + "plat-eco.gc" + "ropebridge.gc" + "ticky.gc" + ) + + diff --git a/goal_src/goal-lib.gc b/goal_src/goal-lib.gc index 3c01a6d466..4f69000dcf 100644 --- a/goal_src/goal-lib.gc +++ b/goal_src/goal-lib.gc @@ -625,3 +625,33 @@ (defmacro fake-asm (asm-name &rest args) `(defmacro ,asm-name (,@args) `(none)) ) + + +;;;;;;;;;;;;;;;;;;;;;;;;; +;; Build System +;;;;;;;;;;;;;;;;;;;;;;;;; + +(defmacro makeo (object-name &rest flags) + "Make the given object. Can use a string, or not." + `(make ,(string-append + "out/obj/" + (if (string? object-name) object-name (symbol->string object-name)) + ".o" + ) + ,@flags) + ) + +(defmacro make-cgo (file) + `(make ,(string-append "out/iso/" file ".CGO")) + ) + +(defmacro make-dgo (file) + `(make ,(string-append "out/iso/" file ".DGO")) + ) + +(defmacro make-group (name &key (verbose #f) &key (force #f)) + `(make ,(string-append "GROUP:" name) :verbose ,verbose :force ,force) + ) + +;; load the default project +(load-project "goal_src/game.gp") diff --git a/goalc/CMakeLists.txt b/goalc/CMakeLists.txt index c5b6a9c006..02824890e8 100644 --- a/goalc/CMakeLists.txt +++ b/goalc/CMakeLists.txt @@ -34,6 +34,9 @@ add_library(compiler debugger/DebugInfo.cpp listener/Listener.cpp listener/MemoryMap.cpp + make/MakeSystem.cpp + make/Tool.cpp + make/Tools.cpp regalloc/IRegister.cpp regalloc/Allocator.cpp regalloc/allocate.cpp @@ -42,15 +45,15 @@ add_library(compiler target_link_libraries(compiler common Zydis) -if(WIN32) +if (WIN32) target_link_libraries(compiler mman) -endif() +endif () -if(UNIX) +if (UNIX) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2") -elseif(WIN32) +elseif (WIN32) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /O2") -endif() +endif () add_executable(goalc main.cpp) target_link_libraries(goalc common Zydis compiler) diff --git a/goalc/compiler/Compiler.cpp b/goalc/compiler/Compiler.cpp index edc4c59f10..37f702d729 100644 --- a/goalc/compiler/Compiler.cpp +++ b/goalc/compiler/Compiler.cpp @@ -1,11 +1,12 @@ #include "Compiler.h" -#include "common/link_types.h" -#include "IR.h" -#include "goalc/regalloc/allocate.h" -#include "third-party/fmt/core.h" -#include "CompilerException.h" #include #include +#include "CompilerException.h" +#include "IR.h" +#include "common/link_types.h" +#include "goalc/make/Tools.h" +#include "goalc/regalloc/allocate.h" +#include "third-party/fmt/core.h" using namespace goos; @@ -16,7 +17,10 @@ Compiler::Compiler(std::unique_ptr repl) m_global_env = std::make_unique(); m_none = std::make_unique(m_ts.make_typespec("none")); - // compile GOAL library + // let the build system run us + m_make.add_tool(std::make_shared(this)); + + // load GOAL library Object library_code = m_goos.reader.read_from_file({"goal_src", "goal-lib.gc"}); compile_object_file("goal-lib", library_code, false); @@ -410,3 +414,7 @@ void Compiler::typecheck_reg_type_allow_false(const goos::Object& form, } typecheck(form, expected, coerce_to_reg_type(actual->type()), error_message); } + +bool Compiler::knows_object_file(const std::string& name) { + return m_debugger.knows_object(name); +} \ No newline at end of file diff --git a/goalc/compiler/Compiler.h b/goalc/compiler/Compiler.h index 56353295d1..cc58e00790 100644 --- a/goalc/compiler/Compiler.h +++ b/goalc/compiler/Compiler.h @@ -2,19 +2,22 @@ #include #include -#include "common/type_system/TypeSystem.h" -#include "Env.h" -#include "goalc/listener/Listener.h" + +#include "third-party/fmt/color.h" +#include "third-party/fmt/core.h" + #include "common/goos/Interpreter.h" +#include "common/goos/ReplUtils.h" +#include "common/type_system/TypeSystem.h" +#include "goalc/compiler/CompilerException.h" +#include "goalc/compiler/CompilerSettings.h" +#include "goalc/compiler/Env.h" #include "goalc/compiler/IR.h" +#include "goalc/compiler/SymbolInfo.h" #include "goalc/debugger/Debugger.h" #include "goalc/emitter/Register.h" -#include "CompilerSettings.h" -#include "third-party/fmt/core.h" -#include "third-party/fmt/color.h" -#include "CompilerException.h" -#include "goalc/compiler/SymbolInfo.h" -#include "common/goos/ReplUtils.h" +#include "goalc/listener/Listener.h" +#include "goalc/make/MakeSystem.h" enum MathMode { MATH_INT, MATH_BINT, MATH_FLOAT, MATH_INVALID }; @@ -56,8 +59,26 @@ class Compiler { void repl_coloring(std::string const& str, Replxx::colors_t& colors, std::vector> const& user_data); + bool knows_object_file(const std::string& name); private: + TypeSystem m_ts; + std::unique_ptr m_global_env = nullptr; + std::unique_ptr m_none = nullptr; + bool m_want_exit = false; + bool m_want_reload = false; + listener::Listener m_listener; + Debugger m_debugger; + goos::Interpreter m_goos; + std::unordered_map m_symbol_types; + std::unordered_map, goos::Object> m_global_constants; + std::unordered_map, LambdaVal*> m_inlineable_functions; + CompilerSettings m_settings; + bool m_throw_on_define_extern_redefinition = false; + SymbolInfoMap m_symbol_info; + std::unique_ptr m_repl; + MakeSystem m_make; + std::set lookup_symbol_infos_starting_with(const std::string& prefix) const; std::vector* lookup_exact_name_info(const std::string& name) const; bool get_true_or_false(const goos::Object& form, const goos::Object& boolean); @@ -223,22 +244,6 @@ class Compiler { std::string make_symbol_info_description(const SymbolInfo& info); - TypeSystem m_ts; - std::unique_ptr m_global_env = nullptr; - std::unique_ptr m_none = nullptr; - bool m_want_exit = false; - bool m_want_reload = false; - listener::Listener m_listener; - Debugger m_debugger; - goos::Interpreter m_goos; - std::unordered_map m_symbol_types; - std::unordered_map, goos::Object> m_global_constants; - std::unordered_map, LambdaVal*> m_inlineable_functions; - CompilerSettings m_settings; - bool m_throw_on_define_extern_redefinition = false; - SymbolInfoMap m_symbol_info; - std::unique_ptr m_repl; - MathMode get_math_mode(const TypeSpec& ts); bool is_number(const TypeSpec& ts); bool is_float(const TypeSpec& ts); @@ -492,6 +497,8 @@ class Compiler { Val* compile_add_macro_to_autocomplete(const goos::Object& form, const goos::Object& rest, Env* env); + Val* compile_load_project(const goos::Object& form, const goos::Object& rest, Env* env); + Val* compile_make(const goos::Object& form, const goos::Object& rest, Env* env); // ControlFlow Condition compile_condition(const goos::Object& condition, Env* env, bool invert); diff --git a/goalc/compiler/compilation/Atoms.cpp b/goalc/compiler/compilation/Atoms.cpp index f1b03485ea..611cc663bb 100644 --- a/goalc/compiler/compilation/Atoms.cpp +++ b/goalc/compiler/compilation/Atoms.cpp @@ -128,6 +128,8 @@ const std::unordered_map< {"get-info", &Compiler::compile_get_info}, {"autocomplete", &Compiler::compile_autocomplete}, {"add-macro-to-autocomplete", &Compiler::compile_add_macro_to_autocomplete}, + {"load-project", &Compiler::compile_load_project}, + {"make", &Compiler::compile_make}, // CONDITIONAL COMPILATION {"#cond", &Compiler::compile_gscond}, diff --git a/goalc/compiler/compilation/CompilerControl.cpp b/goalc/compiler/compilation/CompilerControl.cpp index 2a945be967..05deb05568 100644 --- a/goalc/compiler/compilation/CompilerControl.cpp +++ b/goalc/compiler/compilation/CompilerControl.cpp @@ -4,18 +4,19 @@ */ #include -#include "goalc/compiler/Compiler.h" -#include "goalc/compiler/IR.h" -#include "common/util/Timer.h" -#include "common/util/DgoWriter.h" -#include "common/util/FileUtil.h" -#include "goalc/data_compiler/game_text.h" -#include "goalc/data_compiler/game_count.h" -#include "goalc/data_compiler/dir_tpages.h" -#include "common/goos/ReplUtils.h" #include #include +#include "common/goos/ReplUtils.h" +#include "common/util/DgoWriter.h" +#include "common/util/FileUtil.h" +#include "common/util/Timer.h" +#include "goalc/compiler/Compiler.h" +#include "goalc/compiler/IR.h" +#include "goalc/data_compiler/dir_tpages.h" +#include "goalc/data_compiler/game_count.h" +#include "goalc/data_compiler/game_text.h" + /*! * Exit the compiler. Disconnects the listener and tells the target to reset itself. * Will actually exit the next time the REPL runs. @@ -90,6 +91,7 @@ Val* Compiler::compile_asm_file(const goos::Object& form, const goos::Object& re bool write = false; bool no_code = false; bool disassemble = false; + bool no_time_prints = false; std::vector> timing; Timer total_timer; @@ -120,6 +122,8 @@ Val* Compiler::compile_asm_file(const goos::Object& form, const goos::Object& re } else if (setting == ":disassemble") { disassemble = true; last_was_disasm = true; + } else if (setting == ":no-time-prints") { + no_time_prints = true; } else { throw_compiler_error(form, "The option {} was not recognized for asm-file.", setting); } @@ -208,7 +212,7 @@ Val* Compiler::compile_asm_file(const goos::Object& form, const goos::Object& re printf("\n"); } else { auto total_time = total_timer.getMs(); - if (total_time > 10.0 && color) { + if (total_time > 10.0 && color && !no_time_prints) { fmt::print("[ASM-FILE] {} took {:.2f} ms\n", obj_file_name, total_time); } } @@ -574,4 +578,30 @@ std::vector* Compiler::lookup_exact_name_info(const std::string& nam } else { return nullptr; } +} + +Val* Compiler::compile_load_project(const goos::Object& form, const goos::Object& rest, Env*) { + auto args = get_va(form, rest); + va_check(form, args, {goos::ObjectType::STRING}, {}); + m_make.load_project_file(args.unnamed.at(0).as_string()->data); + return get_none(); +} + +Val* Compiler::compile_make(const goos::Object& form, const goos::Object& rest, Env*) { + auto args = get_va(form, rest); + va_check(form, args, {goos::ObjectType::STRING}, + {{"force", {false, {goos::ObjectType::SYMBOL}}}, + {"verbose", {false, {goos::ObjectType::SYMBOL}}}}); + bool force = false; + if (args.has_named("force")) { + force = get_true_or_false(form, args.get_named("force")); + } + + bool verbose = false; + if (args.has_named("verbose")) { + verbose = get_true_or_false(form, args.get_named("verbose")); + } + + m_make.make(args.unnamed.at(0).as_string()->data, force, verbose); + return get_none(); } \ No newline at end of file diff --git a/goalc/data_compiler/dir_tpages.cpp b/goalc/data_compiler/dir_tpages.cpp index 37dca4041c..93b2449803 100644 --- a/goalc/data_compiler/dir_tpages.cpp +++ b/goalc/data_compiler/dir_tpages.cpp @@ -8,8 +8,6 @@ void compile_dir_tpages(const std::string& filename) { std::vector lengths; - printf("[Build tpage dir] %s\n", filename.c_str()); - goos::Reader reader; auto code = reader.read_from_file({filename}); std::string err; diff --git a/goalc/data_compiler/game_count.cpp b/goalc/data_compiler/game_count.cpp index c15a5b17ac..0edcf726bd 100644 --- a/goalc/data_compiler/game_count.cpp +++ b/goalc/data_compiler/game_count.cpp @@ -6,7 +6,6 @@ #include "game_count.h" void compile_game_count(const std::string& filename) { - printf("[Build Game Count] %s\n", filename.c_str()); struct Count { int buzzer; int money; diff --git a/goalc/debugger/Debugger.cpp b/goalc/debugger/Debugger.cpp index ffa1c982ce..88f7520e51 100644 --- a/goalc/debugger/Debugger.cpp +++ b/goalc/debugger/Debugger.cpp @@ -4,15 +4,15 @@ * Uses xdbg functions to debug an OpenGOAL target. */ -#include "goalc/emitter/Register.h" -#include "common/util/assert.h" #include "Debugger.h" -#include "common/util/Timer.h" #include "common/goal_constants.h" #include "common/symbols.h" -#include "third-party/fmt/core.h" +#include "common/util/Timer.h" +#include "common/util/assert.h" #include "goalc/debugger/disassemble.h" +#include "goalc/emitter/Register.h" #include "goalc/listener/Listener.h" +#include "third-party/fmt/core.h" /*! * Is the target halted? If we don't know or aren't connected, returns false. @@ -751,4 +751,8 @@ DebugInfo& Debugger::get_debug_info_for_object(const std::string& object_name) { } return m_debug_info.insert(std::make_pair(object_name, DebugInfo(object_name))).first->second; +} + +bool Debugger::knows_object(const std::string& object_name) const { + return m_debug_info.find(object_name) != m_debug_info.end(); } \ No newline at end of file diff --git a/goalc/debugger/Debugger.h b/goalc/debugger/Debugger.h index 50a7736e2d..169b56ac3c 100644 --- a/goalc/debugger/Debugger.h +++ b/goalc/debugger/Debugger.h @@ -6,16 +6,16 @@ #pragma once -#include -#include -#include #include +#include +#include #include +#include +#include +#include "DebugInfo.h" #include "common/common_types.h" #include "common/cross_os_debug/xdbg.h" #include "goalc/listener/MemoryMap.h" -#include "DebugInfo.h" -#include namespace listener { class Listener; @@ -92,6 +92,7 @@ class Debugger { InstructionPointerInfo get_rip_info(u64 x86_rip); DebugInfo& get_debug_info_for_object(const std::string& object_name); + bool knows_object(const std::string& object_name) const; const InstructionPointerInfo& get_cached_break_info() { return m_break_info; } std::string get_info_about_addr(u32 addr); Disassembly disassemble_at_rip(const InstructionPointerInfo& info); diff --git a/goalc/main.cpp b/goalc/main.cpp index 3b0cee6e5d..a0664d20fe 100644 --- a/goalc/main.cpp +++ b/goalc/main.cpp @@ -48,7 +48,7 @@ int main(int argc, char** argv) { // Init REPL // the compiler may throw an exception if it fails to load its standard library. try { - std::unique_ptr compiler = std::make_unique(); + std::unique_ptr compiler; if (argument.empty()) { ReplStatus status = ReplStatus::WANT_RELOAD; while (status == ReplStatus::WANT_RELOAD) { @@ -59,6 +59,7 @@ int main(int argc, char** argv) { } } } else { + compiler = std::make_unique(); compiler->run_front_end_on_string(argument); } } catch (std::exception& e) { diff --git a/goalc/make/MakeSystem.cpp b/goalc/make/MakeSystem.cpp new file mode 100644 index 0000000000..ac5c264d87 --- /dev/null +++ b/goalc/make/MakeSystem.cpp @@ -0,0 +1,328 @@ +#include + +#include "MakeSystem.h" + +#include "third-party/fmt/color.h" +#include "third-party/fmt/core.h" + +#include "common/goos/ParseHelpers.h" +#include "common/util/Timer.h" + +#include "goalc/make/Tools.h" + +std::string MakeStep::print() const { + std::string result = fmt::format("Tool {} with input \"{}\" and deps:\n ", tool, input); + for (auto& dep : deps) { + result += dep; + result += '\n'; + result += ' '; + } + result.pop_back(); + + result += fmt::format("will produce outputs:\n "); + for (auto& o : outputs) { + result += o; + result += '\n'; + result += ' '; + } + result.pop_back(); + return result; +} + +MakeSystem::MakeSystem() { + m_goos.register_form("defstep", [=](const goos::Object& obj, goos::Arguments& args, + const std::shared_ptr& env) { + return handle_defstep(obj, args, env); + }); + + m_goos.register_form("basename", [=](const goos::Object& obj, goos::Arguments& args, + const std::shared_ptr& env) { + return handle_basename(obj, args, env); + }); + + m_goos.register_form("stem", [=](const goos::Object& obj, goos::Arguments& args, + const std::shared_ptr& env) { + return handle_stem(obj, args, env); + }); + + m_goos.set_global_variable_to_symbol("ASSETS", "#t"); + + add_tool(); + add_tool(); + add_tool(); + add_tool(); + add_tool(); + add_tool(); +} + +/*! + * Load a project file, clearing any project info previously loaded. + */ +void MakeSystem::load_project_file(const std::string& file_path) { + Timer timer; + // clear the previous project + clear_project(); + // read the file + auto data = m_goos.reader.read_from_file({file_path}); + // interpret it, which will call various handlers. + m_goos.eval(data, m_goos.global_environment.as_env()); +} + +goos::Object MakeSystem::handle_defstep(const goos::Object& form, + goos::Arguments& args, + const std::shared_ptr& env) { + m_goos.eval_args(&args, env); + va_check(form, args, {}, + {{"out", {true, {goos::ObjectType::PAIR}}}, + {"tool", {true, {goos::ObjectType::SYMBOL}}}, + {"in", {false, {goos::ObjectType::STRING}}}, + {"dep", {false, {}}}}); + + auto step = std::make_shared(); + + goos::for_each_in_list(args.get_named("out"), [&](const goos::Object& obj) { + step->outputs.push_back(obj.as_string()->data); + }); + + step->tool = args.get_named("tool").as_symbol()->name; + + if (m_tools.find(step->tool) == m_tools.end()) { + throw std::runtime_error(fmt::format("The tool {} is unknown.", step->tool)); + } + + if (args.has_named("in")) { + step->input = args.get_named("in").as_string()->data; + } + + if (args.has_named("dep")) { + goos::for_each_in_list(args.get_named("dep"), [&](const goos::Object& obj) { + step->deps.push_back(obj.as_string()->data); + }); + } + + for (auto& output : step->outputs) { + auto existing = m_output_to_step.find(output); + if (existing != m_output_to_step.end()) { + throw std::runtime_error(fmt::format("There are multiple ways to make output {}:\n{}\n{}\n", + output, step->print(), existing->second->print())); + } + m_output_to_step.insert({output, step}); + } + + return goos::EmptyListObject::make_new(); +} + +/*! + * Fully clear the state of the project. + * + */ +void MakeSystem::clear_project() { + m_output_to_step.clear(); +} + +void MakeSystem::va_check( + const goos::Object& form, + const goos::Arguments& args, + const std::vector>& unnamed, + const std::unordered_map>>& + named) { + std::string err; + if (!goos::va_check(args, unnamed, named, &err)) { + m_goos.throw_eval_error(form, err); + } +} + +goos::Object MakeSystem::handle_basename(const goos::Object& form, + goos::Arguments& args, + const std::shared_ptr& env) { + m_goos.eval_args(&args, env); + va_check(form, args, {goos::ObjectType::STRING}, {}); + std::filesystem::path input(args.unnamed.at(0).as_string()->data); + + return goos::StringObject::make_new(input.filename().u8string()); +} + +goos::Object MakeSystem::handle_stem(const goos::Object& form, + goos::Arguments& args, + const std::shared_ptr& env) { + m_goos.eval_args(&args, env); + va_check(form, args, {goos::ObjectType::STRING}, {}); + std::filesystem::path input(args.unnamed.at(0).as_string()->data); + + return goos::StringObject::make_new(input.stem().u8string()); +} + +void MakeSystem::get_dependencies(const std::string& master_target, + const std::string& output, + std::vector* result, + std::unordered_set* result_set) const { + if (result_set->find(output) != result_set->end()) { + return; + } + + const auto& rule_it = m_output_to_step.find(output); + if (rule_it == m_output_to_step.end()) { + throw std::runtime_error( + fmt::format("No rule to make {}, required for {}\n", output, master_target)); + } + + // what deps do we need? + for (auto& dep : rule_it->second->deps) { + get_dependencies(master_target, dep, result, result_set); + } + + const auto& rule = rule_it->second; + for (auto& dep : m_tools.at(rule->tool) + ->get_additional_dependencies({rule->input, rule->deps, rule->outputs})) { + get_dependencies(master_target, dep, result, result_set); + } + + result->push_back(output); + for (auto& op : rule->outputs) { + result_set->insert(op); + } +} + +std::vector MakeSystem::get_dependencies(const std::string& target) const { + Timer timer; + + std::vector result; + std::unordered_set added_deps; + + get_dependencies(target, target, &result, &added_deps); + + fmt::print("Successfully found all {} dependencies for target in {:.3f}s\n", result.size(), + timer.getSeconds()); + return result; +} + +void MakeSystem::add_tool(std::shared_ptr tool) { + auto& name = tool->name(); + assert(m_tools.find(name) == m_tools.end()); + m_tools[name] = tool; +} + +std::vector MakeSystem::filter_dependencies(const std::vector& all_deps) { + Timer timer; + std::vector result; + std::unordered_set stale_deps; + + std::unordered_set compiler_sym_needed; + + for (auto& to_make : all_deps) { + auto& rule = m_output_to_step.at(to_make); + auto& tool = m_tools.at(rule->tool); + + bool added = false; + + if (tool->needs_run({rule->input, rule->deps, rule->outputs})) { + result.push_back(to_make); + stale_deps.insert(to_make); + added = true; + } + + if (!added) { + // check transitive dependencies + for (auto& dep : rule->deps) { + if (stale_deps.find(dep) != stale_deps.end()) { + result.push_back(to_make); + stale_deps.insert(to_make); + added = true; + break; + } + } + } + + if (!added) { + // check transitive dependencies + for (auto& dep : + tool->get_additional_dependencies({rule->input, rule->deps, rule->outputs})) { + if (stale_deps.find(dep) != stale_deps.end()) { + result.push_back(to_make); + stale_deps.insert(to_make); + added = true; + break; + } + } + } + } + + fmt::print("Found that {} of {} targets do need rebuilding in {:.3f}s\n", result.size(), + all_deps.size(), timer.getSeconds()); + return result; +} + +namespace { +void print_input(const std::string& in, char end) { + if (in.length() > 70) { + fmt::print("{}...{}", in.substr(0, 70 - 3), end); + } else { + fmt::print("{}{}{}", in, std::string(70 - in.length(), ' '), end); + } +} +} // namespace + +bool MakeSystem::make(const std::string& target, bool force, bool verbose) { + auto deps = get_dependencies(target); + // fmt::print("All deps:\n"); + // for (auto& dep : deps) { + // fmt::print("{}\n", dep); + // } + if (!force) { + deps = filter_dependencies(deps); + } + + // fmt::print("Filt deps:\n"); + // for (auto& dep : filtered_deps) { + // fmt::print("{}\n", dep); + // } + + Timer make_timer; + fmt::print("Building {} targets...\n", deps.size()); + int i = 0; + for (auto& to_make : deps) { + Timer step_timer; + auto& rule = m_output_to_step.at(to_make); + auto& tool = m_tools.at(rule->tool); + int percent = (100.0 * (1 + (i++)) / (deps.size())) + 0.5; + if (verbose) { + fmt::print("[{:3d}%] [{:8s}] {}\n", percent, tool->name(), rule->input); + } else { + fmt::print("[{:3d}%] [{:8s}] ", percent, tool->name()); + print_input(rule->input, '\r'); + } + + bool success = false; + try { + success = tool->run({rule->input, rule->deps, rule->outputs}); + } catch (std::exception& e) { + fmt::print("\n"); + fmt::print("Error: {}\n", e.what()); + } + if (!success) { + fmt::print("Build failed on {}.\n", rule->input); + throw std::runtime_error("Build failed."); + return false; + } + + if (verbose) { + if (step_timer.getSeconds() > 0.05) { + fmt::print(fg(fmt::color::yellow), " {:.3f}\n", step_timer.getSeconds()); + } else { + fmt::print(" {:.3f}\n", step_timer.getSeconds()); + } + } else { + if (step_timer.getSeconds() > 0.05) { + fmt::print("[{:3d}%] [{:8s}] ", percent, tool->name()); + fmt::print(fg(fmt::color::yellow), "{:.3f} ", step_timer.getSeconds()); + print_input(rule->input, '\n'); + } else { + fmt::print("[{:3d}%] [{:8s}] {:.3f} ", percent, tool->name(), step_timer.getSeconds()); + print_input(rule->input, '\r'); + } + } + } + fmt::print("\nSuccessfully built all {} targets in {:.3f}s\n", deps.size(), + make_timer.getSeconds()); + return true; +} \ No newline at end of file diff --git a/goalc/make/MakeSystem.h b/goalc/make/MakeSystem.h new file mode 100644 index 0000000000..2e53fc1c13 --- /dev/null +++ b/goalc/make/MakeSystem.h @@ -0,0 +1,61 @@ +#pragma once + +#include "common/goos/Interpreter.h" +#include "goalc/make/Tool.h" + +struct MakeStep { + std::string input; + std::vector deps, outputs; + std::string tool; + + std::string print() const; +}; + +class MakeSystem { + public: + MakeSystem(); + void load_project_file(const std::string& file_path); + + goos::Object handle_defstep(const goos::Object& obj, + goos::Arguments& args, + const std::shared_ptr& env); + + goos::Object handle_basename(const goos::Object& obj, + goos::Arguments& args, + const std::shared_ptr& env); + + goos::Object handle_stem(const goos::Object& obj, + goos::Arguments&, + const std::shared_ptr& env); + + std::vector get_dependencies(const std::string& target) const; + std::vector filter_dependencies(const std::vector& all_deps); + + bool make(const std::string& target, bool force, bool verbose); + + void add_tool(std::shared_ptr tool); + + template + void add_tool() { + add_tool(std::make_shared()); + } + + void clear_project(); + + private: + void va_check(const goos::Object& form, + const goos::Arguments& args, + const std::vector>& unnamed, + const std::unordered_map>>& named); + + void get_dependencies(const std::string& master_target, + const std::string& output, + std::vector* result_order, + std::unordered_set* result_set) const; + + goos::Interpreter m_goos; + + std::unordered_map> m_output_to_step; + std::unordered_map> m_tools; +}; diff --git a/goalc/make/Tool.cpp b/goalc/make/Tool.cpp new file mode 100644 index 0000000000..e88189b74f --- /dev/null +++ b/goalc/make/Tool.cpp @@ -0,0 +1,59 @@ + +#include +#include + +#include "third-party/fmt/core.h" + +#include "Tool.h" +#include "common/util/FileUtil.h" + +Tool::Tool(const std::string& name) : m_name(name) {} + +bool Tool::needs_run(const ToolInput& task) { + // for this to return false, all outputs need to be newer than all inputs. + + auto in_file = std::filesystem::path(file_util::get_file_path({task.input})); + + if (!std::filesystem::exists(in_file)) { + throw std::runtime_error(fmt::format("Input file {} does not exist.", task.input)); + } + + auto newest_input = std::filesystem::last_write_time(in_file); + for (auto& dep : task.deps) { + auto dep_path = std::filesystem::path(file_util::get_file_path({dep})); + if (std::filesystem::exists(dep_path)) { + auto dep_time = std::filesystem::last_write_time(dep_path); + if (dep_time > newest_input) { + newest_input = dep_time; + } + } else { + return true; // don't have a dep. + } + } + + for (auto& dep : get_additional_dependencies(task)) { + auto dep_path = std::filesystem::path(file_util::get_file_path({dep})); + if (std::filesystem::exists(dep_path)) { + auto dep_time = std::filesystem::last_write_time(dep_path); + if (dep_time > newest_input) { + newest_input = dep_time; + } + } else { + return true; // don't have a dep. + } + } + + for (auto& out : task.output) { + auto out_path = std::filesystem::path(file_util::get_file_path({out})); + if (std::filesystem::exists(out_path)) { + auto out_time = std::filesystem::last_write_time(out_path); + if (out_time < newest_input) { + return true; + } + } else { + return true; // don't have a dep. + } + } + + return false; +} diff --git a/goalc/make/Tool.h b/goalc/make/Tool.h new file mode 100644 index 0000000000..5f58447993 --- /dev/null +++ b/goalc/make/Tool.h @@ -0,0 +1,25 @@ +#pragma once + +#include +#include +#include + +struct ToolInput { + std::string& input; // the input file + std::vector& deps; // explicit dependencies + std::vector& output; // produced output files. +}; + +class Tool { + public: + Tool(const std::string& name); + virtual bool run(const ToolInput& task) = 0; + virtual std::vector get_additional_dependencies(const ToolInput&) { return {}; } + virtual bool needs_run(const ToolInput& task); + virtual ~Tool() = default; + + const std::string& name() const { return m_name; } + + private: + std::string m_name; +}; \ No newline at end of file diff --git a/goalc/make/Tools.cpp b/goalc/make/Tools.cpp new file mode 100644 index 0000000000..69f96fc579 --- /dev/null +++ b/goalc/make/Tools.cpp @@ -0,0 +1,121 @@ + + +#include "Tools.h" + +#include +#include "goalc/compiler/Compiler.h" +#include "common/goos/ParseHelpers.h" +#include "common/util/DgoWriter.h" +#include "common/util/FileUtil.h" +#include "third-party/fmt/core.h" +#include "goalc/data_compiler/dir_tpages.h" +#include "goalc/data_compiler/game_count.h" +#include "goalc/data_compiler/game_text.h" + +CompilerTool::CompilerTool(Compiler* compiler) : Tool("goalc"), m_compiler(compiler) {} + +bool CompilerTool::needs_run(const ToolInput& task) { + if (!m_compiler->knows_object_file(std::filesystem::path(task.input).stem().u8string())) { + return true; + } + return Tool::needs_run(task); +} + +bool CompilerTool::run(const ToolInput& task) { + // todo check inputs + try { + m_compiler->run_front_end_on_string( + fmt::format("(asm-file \"{}\" :no-time-prints :color :write)", task.input)); + } catch (std::exception& e) { + fmt::print("Compilation failed: {}\n", e.what()); + return false; + } + return true; +} + +namespace { +DgoDescription parse_desc_file(const std::string& filename, goos::Reader& reader) { + auto dgo_desc = reader.read_from_file({filename}).as_pair()->cdr; + if (goos::list_length(dgo_desc) != 1) { + throw std::runtime_error("Invalid DGO description - got too many lists"); + } + auto dgo = dgo_desc.as_pair()->car; + + DgoDescription desc; + auto first = dgo.as_pair()->car; + desc.dgo_name = first.as_string()->data; + auto dgo_rest = dgo.as_pair()->cdr; + + for_each_in_list(dgo_rest, [&](const goos::Object& entry) { + goos::Arguments e_arg; + std::string err; + if (!goos::get_va(entry, &err, &e_arg)) { + throw std::runtime_error(fmt::format("Invalid DGO description: {}\n", err)); + } + + if (!goos::va_check(e_arg, {goos::ObjectType::STRING, goos::ObjectType::STRING}, {}, &err)) { + throw std::runtime_error(fmt::format("Invalid DGO description: {}\n", err)); + } + DgoDescription::DgoEntry o; + o.file_name = e_arg.unnamed.at(0).as_string()->data; + o.name_in_dgo = e_arg.unnamed.at(1).as_string()->data; + desc.entries.push_back(o); + }); + return desc; +} +} // namespace + +DgoTool::DgoTool() : Tool("dgo") {} + +bool DgoTool::run(const ToolInput& task) { + auto desc = parse_desc_file(task.input, m_reader); + build_dgo(desc); + return true; +} + +std::vector DgoTool::get_additional_dependencies(const ToolInput& task) { + std::vector result; + auto desc = parse_desc_file(task.input, m_reader); + for (auto& x : desc.entries) { + result.push_back(fmt::format("out/obj/{}", x.file_name)); + } + return result; +} + +TpageDirTool::TpageDirTool() : Tool("tpage-dir") {} + +bool TpageDirTool::run(const ToolInput& task) { + compile_dir_tpages(task.input); + return true; +} + +CopyTool::CopyTool() : Tool("copy") {} + +bool CopyTool::run(const ToolInput& task) { + for (auto& out : task.output) { + std::filesystem::copy(std::filesystem::path(file_util::get_file_path({task.input})), + std::filesystem::path(file_util::get_file_path({out})), + std::filesystem::copy_options::overwrite_existing); + } + return true; +} + +GameCntTool::GameCntTool() : Tool("game-cnt") {} + +bool GameCntTool::run(const ToolInput& task) { + compile_game_count(task.input); + return true; +} + +TextTool::TextTool() : Tool("text") {} + +bool TextTool::run(const ToolInput& task) { + compile_game_text(task.input); + return true; +} + +GroupTool::GroupTool() : Tool("group") {} + +bool GroupTool::run(const ToolInput&) { + return true; +} \ No newline at end of file diff --git a/goalc/make/Tools.h b/goalc/make/Tools.h new file mode 100644 index 0000000000..17baec819d --- /dev/null +++ b/goalc/make/Tools.h @@ -0,0 +1,57 @@ +#pragma once + +#include "goalc/make/Tool.h" +#include "common/goos/Reader.h" + +class Compiler; + +class CompilerTool : public Tool { + public: + CompilerTool(Compiler* compiler); + + bool run(const ToolInput& task) override; + bool needs_run(const ToolInput& task) override; + + private: + Compiler* m_compiler = nullptr; +}; + +class DgoTool : public Tool { + public: + DgoTool(); + bool run(const ToolInput& task) override; + std::vector get_additional_dependencies(const ToolInput&) override; + + private: + goos::Reader m_reader; +}; + +class TpageDirTool : public Tool { + public: + TpageDirTool(); + bool run(const ToolInput& task) override; +}; + +class CopyTool : public Tool { + public: + CopyTool(); + bool run(const ToolInput& task) override; +}; + +class GameCntTool : public Tool { + public: + GameCntTool(); + bool run(const ToolInput& task) override; +}; + +class TextTool : public Tool { + public: + TextTool(); + bool run(const ToolInput& task) override; +}; + +class GroupTool : public Tool { + public: + GroupTool(); + bool run(const ToolInput& task) override; +}; \ No newline at end of file diff --git a/scripts/emacs/goal-config.el b/scripts/emacs/goal-config.el index da7a123486..69f7fe3e50 100644 --- a/scripts/emacs/goal-config.el +++ b/scripts/emacs/goal-config.el @@ -99,6 +99,8 @@ ;; set up indentation for GOAL keywords (put 'with-pp 'common-lisp-indent-function 0) (put 'while 'common-lisp-indent-function 1) + (put 'goal-src 'common-lisp-indent-function 1) + (put 'engine-src 'common-lisp-indent-function 1) (put 'rlet 'common-lisp-indent-function 1) (put 'until 'common-lisp-indent-function 1) (put 'countdown 'common-lisp-indent-function 1) diff --git a/scripts/shell/offline_test_git_branch.sh b/scripts/shell/offline_test_git_branch.sh index 605a568f92..325f2160bb 100755 --- a/scripts/shell/offline_test_git_branch.sh +++ b/scripts/shell/offline_test_git_branch.sh @@ -47,15 +47,12 @@ echo " ================ Running offline decompiler tests..." echo " ================ Decompiling..." ../scripts/shell/decomp.sh -echo " ================ Building assets..." -../scripts/shell/gc.sh -cmd \(build-data\) +echo " ================ Building project..." +../scripts/shell/gc.sh -cmd \(make-group\ \"iso\"\) echo " ================ Checking assets..." ../scripts/shell/check.sh -echo " ================ Building game..." -../scripts/shell/gc.sh -cmd \(build-game\) - echo " ================ Booting game..." ../scripts/shell/boot_game.sh diff --git a/test/goalc/test_with_game.cpp b/test/goalc/test_with_game.cpp index 09ccf0da3e..aff11c6454 100644 --- a/test/goalc/test_with_game.cpp +++ b/test/goalc/test_with_game.cpp @@ -115,6 +115,10 @@ std::vector get_test_pass_string(const std::string& name, int count } } // namespace +TEST_F(WithGameTests, MakeSystem) { + compiler.run_front_end_on_string("(make \"out/iso/ENGINE.CGO\")"); +} + TEST_F(WithGameTests, ReturnConstant) { runner.run_static_test(env, testCategory, "defun-return-constant.static.gc", {"12\n"}); } diff --git a/test/test_goos.cpp b/test/test_goos.cpp index 4bbd2d5475..5064ea4d72 100644 --- a/test/test_goos.cpp +++ b/test/test_goos.cpp @@ -1319,3 +1319,17 @@ TEST(GoosBuiltins, Error) { Interpreter i; EXPECT_ANY_THROW(e(i, "(error \"hi\")")); } + +TEST(GoosBuiltins, Ash) { + Interpreter i; + EXPECT_EQ(e(i, "(ash 3 2)"), "12"); + EXPECT_EQ(e(i, "(ash 3 -1)"), "1"); +} + +TEST(GoosBuiltins, StringUtils) { + Interpreter i; + EXPECT_EQ(e(i, "(string-ref \"test\" 2)"), "#\\s"); + EXPECT_EQ(e(i, "(string-length \"test\")"), "4"); + EXPECT_EQ(e(i, "(string-append \"hello\" \" \" \"world\")"), "\"hello world\""); + EXPECT_EQ(e(i, "(symbol->string 'test)"), "\"test\""); +} \ No newline at end of file From e7bc3eb3b0ae9be7c0f1f6f10f28a619585fcbec Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 16 Jul 2021 01:38:31 +0000 Subject: [PATCH 11/57] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/{about.bc1b293a.js => about.369ba9e3.js} | 4 ++-- docs/js/{about.bc1b293a.js.map => about.369ba9e3.js.map} | 2 +- docs/js/{app.f4cdc4a2.js => app.4862d5e7.js} | 4 ++-- docs/js/{app.f4cdc4a2.js.map => app.4862d5e7.js.map} | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename docs/js/{about.bc1b293a.js => about.369ba9e3.js} (99%) rename docs/js/{about.bc1b293a.js.map => about.369ba9e3.js.map} (99%) rename docs/js/{app.f4cdc4a2.js => app.4862d5e7.js} (97%) rename docs/js/{app.f4cdc4a2.js.map => app.4862d5e7.js.map} (98%) diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index 4bc195d67a..e3cddafd80 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 107136, + "value": 107169, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index ad7850acf2..e7f8d3fcbc 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.bc1b293a.js b/docs/js/about.369ba9e3.js similarity index 99% rename from docs/js/about.bc1b293a.js rename to docs/js/about.369ba9e3.js index e76e773207..e9427a9f56 100644 --- a/docs/js/about.bc1b293a.js +++ b/docs/js/about.369ba9e3.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107136,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.bc1b293a.js.map \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107169,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.369ba9e3.js.map \ No newline at end of file diff --git a/docs/js/about.bc1b293a.js.map b/docs/js/about.369ba9e3.js.map similarity index 99% rename from docs/js/about.bc1b293a.js.map rename to docs/js/about.369ba9e3.js.map index 6fa78d9bd2..b92a00aec7 100644 --- a/docs/js/about.bc1b293a.js.map +++ b/docs/js/about.369ba9e3.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?a70f","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.bc1b293a.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?a10c","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.369ba9e3.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.f4cdc4a2.js b/docs/js/app.4862d5e7.js similarity index 97% rename from docs/js/app.f4cdc4a2.js rename to docs/js/app.4862d5e7.js index e04a4ab70e..2701273080 100644 --- a/docs/js/app.f4cdc4a2.js +++ b/docs/js/app.4862d5e7.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?e1af","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAGnBC,EAAqB,CACxB,IAAO,GAMJjB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASa,EAAe7B,GACvB,OAAOyB,EAAoBK,EAAI,OAAS,CAAC,MAAQ,SAAS9B,IAAUA,GAAW,IAAM,CAAC,MAAQ,YAAYA,GAAW,MAItH,SAASyB,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAUgC,QAGnC,IAAIC,EAASL,EAAiB5B,GAAY,CACzCK,EAAGL,EACHkC,GAAG,EACHF,QAAS,IAUV,OANAlB,EAAQd,GAAUW,KAAKsB,EAAOD,QAASC,EAAQA,EAAOD,QAASN,GAG/DO,EAAOC,GAAI,EAGJD,EAAOD,QAKfN,EAAoBS,EAAI,SAAuBlC,GAC9C,IAAImC,EAAW,GAIXC,EAAY,CAAC,MAAQ,GACtBR,EAAmB5B,GAAUmC,EAASvB,KAAKgB,EAAmB5B,IACzB,IAAhC4B,EAAmB5B,IAAkBoC,EAAUpC,IACtDmC,EAASvB,KAAKgB,EAAmB5B,GAAW,IAAIqC,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,EAAO,QAAU,CAAC,MAAQ,SAASxC,IAAUA,GAAW,IAAM,CAAC,MAAQ,YAAYA,GAAW,OAC9FyC,EAAWhB,EAAoBK,EAAIU,EACnCE,EAAmBC,SAASC,qBAAqB,QAC7CxC,EAAI,EAAGA,EAAIsC,EAAiBpC,OAAQF,IAAK,CAChD,IAAIyC,EAAMH,EAAiBtC,GACvB0C,EAAWD,EAAIE,aAAa,cAAgBF,EAAIE,aAAa,QACjE,GAAe,eAAZF,EAAIG,MAAyBF,IAAaN,GAAQM,IAAaL,GAAW,OAAOH,IAErF,IAAIW,EAAoBN,SAASC,qBAAqB,SACtD,IAAQxC,EAAI,EAAGA,EAAI6C,EAAkB3C,OAAQF,IAAK,CAC7CyC,EAAMI,EAAkB7C,GACxB0C,EAAWD,EAAIE,aAAa,aAChC,GAAGD,IAAaN,GAAQM,IAAaL,EAAU,OAAOH,IAEvD,IAAIY,EAAUP,SAASQ,cAAc,QACrCD,EAAQF,IAAM,aACdE,EAAQE,KAAO,WACfF,EAAQG,OAASf,EACjBY,EAAQI,QAAU,SAASC,GAC1B,IAAIC,EAAUD,GAASA,EAAME,QAAUF,EAAME,OAAOC,KAAOjB,EACvDkB,EAAM,IAAIC,MAAM,qBAAuB5D,EAAU,cAAgBwD,EAAU,KAC/EG,EAAIE,KAAO,wBACXF,EAAIH,QAAUA,SACP5B,EAAmB5B,GAC1BkD,EAAQY,WAAWC,YAAYb,GAC/BX,EAAOoB,IAERT,EAAQV,KAAOC,EAEf,IAAIuB,EAAOrB,SAASC,qBAAqB,QAAQ,GACjDoB,EAAKC,YAAYf,MACfgB,MAAK,WACPtC,EAAmB5B,GAAW,MAMhC,IAAImE,EAAqBxD,EAAgBX,GACzC,GAA0B,IAAvBmE,EAGF,GAAGA,EACFhC,EAASvB,KAAKuD,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAI/B,SAAQ,SAASC,EAASC,GAC3C4B,EAAqBxD,EAAgBX,GAAW,CAACsC,EAASC,MAE3DJ,EAASvB,KAAKuD,EAAmB,GAAKC,GAGtC,IACIC,EADAC,EAAS3B,SAASQ,cAAc,UAGpCmB,EAAOC,QAAU,QACjBD,EAAOE,QAAU,IACb/C,EAAoBgD,IACvBH,EAAOI,aAAa,QAASjD,EAAoBgD,IAElDH,EAAOZ,IAAM7B,EAAe7B,GAG5B,IAAI2E,EAAQ,IAAIf,MAChBS,EAAmB,SAAUd,GAE5Be,EAAOhB,QAAUgB,EAAOjB,OAAS,KACjCuB,aAAaJ,GACb,IAAIK,EAAQlE,EAAgBX,GAC5B,GAAa,IAAV6E,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYvB,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChE2B,EAAUxB,GAASA,EAAME,QAAUF,EAAME,OAAOC,IACpDiB,EAAMK,QAAU,iBAAmBhF,EAAU,cAAgB8E,EAAY,KAAOC,EAAU,IAC1FJ,EAAMM,KAAO,iBACbN,EAAMvB,KAAO0B,EACbH,EAAMnB,QAAUuB,EAChBF,EAAM,GAAGF,GAEVhE,EAAgBX,QAAWkF,IAG7B,IAAIV,EAAUW,YAAW,WACxBd,EAAiB,CAAEjB,KAAM,UAAWK,OAAQa,MAC1C,MACHA,EAAOhB,QAAUgB,EAAOjB,OAASgB,EACjC1B,SAASqB,KAAKC,YAAYK,GAG5B,OAAOjC,QAAQ+C,IAAIjD,IAIpBV,EAAoB4D,EAAIxE,EAGxBY,EAAoB6D,EAAI3D,EAGxBF,EAAoB8D,EAAI,SAASxD,EAASkD,EAAMO,GAC3C/D,EAAoBgE,EAAE1D,EAASkD,IAClC1E,OAAOmF,eAAe3D,EAASkD,EAAM,CAAEU,YAAY,EAAMC,IAAKJ,KAKhE/D,EAAoBoE,EAAI,SAAS9D,GACX,qBAAX+D,QAA0BA,OAAOC,aAC1CxF,OAAOmF,eAAe3D,EAAS+D,OAAOC,YAAa,CAAEC,MAAO,WAE7DzF,OAAOmF,eAAe3D,EAAS,aAAc,CAAEiE,OAAO,KAQvDvE,EAAoBwE,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQvE,EAAoBuE,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK7F,OAAO8F,OAAO,MAGvB,GAFA5E,EAAoBoE,EAAEO,GACtB7F,OAAOmF,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOvE,EAAoB8D,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR3E,EAAoB+E,EAAI,SAASxE,GAChC,IAAIwD,EAASxD,GAAUA,EAAOmE,WAC7B,WAAwB,OAAOnE,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAP,EAAoB8D,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR/D,EAAoBgE,EAAI,SAASgB,EAAQC,GAAY,OAAOnG,OAAOC,UAAUC,eAAeC,KAAK+F,EAAQC,IAGzGjF,EAAoBK,EAAI,gBAGxBL,EAAoBkF,GAAK,SAAShD,GAA2B,MAApBiD,QAAQjC,MAAMhB,GAAYA,GAEnE,IAAIkD,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAWjG,KAAK2F,KAAKM,GAC5CA,EAAWjG,KAAOf,EAClBgH,EAAaA,EAAWG,QACxB,IAAI,IAAI5G,EAAI,EAAGA,EAAIyG,EAAWvG,OAAQF,IAAKP,EAAqBgH,EAAWzG,IAC3E,IAAIU,EAAsBiG,EAI1B/F,EAAgBJ,KAAK,CAAC,EAAE,kBAEjBM,K,4IC1QL,EAAS,WAAa,IAAI+F,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACA,EAAG,SAAS,CAACA,EAAG,gBAAgB,IAAI,IAC5IE,EAAkB,GCQtB,GACEtC,KAAM,MACNuC,WAAY,GACZ1H,KAAM,WAAR,WCZ8T,I,yDCO1T2H,EAAY,eACd,EACA,EACAF,GACA,EACA,KACA,KACA,MAIa,EAAAE,EAAiB,QAMhC,IAAkBA,EAAW,CAACC,OAAA,KAAKC,QAAA,O,gBCrBnCC,OAAIC,IAAIC,QAEO,UAAIA,OAAQ,CACzBC,MAAO,CAAEC,MAAM,K,4CCHjBJ,OAAIC,IAAII,QAER,IAAMC,EAAS,CACb,CACEC,KAAM,IACNlD,KAAM,OACNwC,UAAW,kBAAM,0CAIfW,EAAS,IAAIH,OAAU,CAC3B/B,KAAM,UACNmC,KAAMC,gBACNJ,WAGaE,ICdfR,OAAIW,OAAOC,eAAgB,EAE3B,IAAIZ,OAAI,CACNa,UACAL,SACAM,OAAQ,SAAAC,GAAC,OAAIA,EAAEC,MACdC,OAAO","file":"js/app.4862d5e7.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"369ba9e3\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file From 2754a8f2c4bf58043694c0140b0522356c72d430 Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Sat, 17 Jul 2021 13:41:05 -0400 Subject: [PATCH 12/57] get res decompiling (#705) --- decompiler/IR2/AtomicOpTypeAnalysis.cpp | 17 +- decompiler/IR2/Env.h | 1 + decompiler/IR2/Form.cpp | 7 +- decompiler/IR2/Form.h | 4 + decompiler/IR2/FormExpressionAnalysis.cpp | 157 ++- decompiler/IR2/FormStack.cpp | 3 +- decompiler/IR2/bitfields.cpp | 110 +- decompiler/IR2/bitfields.h | 9 + decompiler/analysis/expression_build.cpp | 13 +- decompiler/analysis/insert_lets.cpp | 4 +- decompiler/analysis/variable_naming.cpp | 19 + decompiler/config/all-types.gc | 11 +- .../jak1_ntsc_black_label/label_types.jsonc | 17 +- .../jak1_ntsc_black_label/type_casts.jsonc | 25 +- .../jak1_ntsc_black_label/var_names.jsonc | 24 +- decompiler/util/TP_Type.cpp | 6 + decompiler/util/TP_Type.h | 13 +- goal_src/engine/data/res-h.gc | 6 +- goal_src/engine/data/res.gc | 281 +++- goal_src/engine/sparticle/sparticle-h.gc | 2 + goal_src/kernel/gcommon.gc | 10 + .../decompiler/reference/decompiler-macros.gc | 7 + .../reference/engine/data/res-h_REF.gc | 7 +- .../reference/engine/data/res_REF.gc | 1151 +++++++++++++++++ .../reference/engine/debug/menu_REF.gc | 24 +- .../engine/draw/process-drawable-h_REF.gc | 19 +- .../engine/entity/entity-table_REF.gc | 2 +- .../engine/game/task/task-control_REF.gc | 2 +- 28 files changed, 1832 insertions(+), 119 deletions(-) create mode 100644 test/decompiler/reference/engine/data/res_REF.gc diff --git a/decompiler/IR2/AtomicOpTypeAnalysis.cpp b/decompiler/IR2/AtomicOpTypeAnalysis.cpp index 58f5c1e941..dabf071443 100644 --- a/decompiler/IR2/AtomicOpTypeAnalysis.cpp +++ b/decompiler/IR2/AtomicOpTypeAnalysis.cpp @@ -187,13 +187,13 @@ TP_Type SimpleExpression::get_type(const TypeState& input, case Kind::XOR: case Kind::LEFT_SHIFT: case Kind::MUL_UNSIGNED: + case Kind::PCPYLD: return get_type_int2(input, env, dts); case Kind::NEG: case Kind::LOGNOT: return get_type_int1(input, env, dts); case Kind::DIV_UNSIGNED: case Kind::MOD_UNSIGNED: - case Kind::PCPYLD: return TP_Type::make_from_ts("uint"); case Kind::VECTOR_PLUS: case Kind::VECTOR_MINUS: @@ -427,6 +427,21 @@ TP_Type SimpleExpression::get_type_int2(const TypeState& input, break; } + if (arg0_type.kind == TP_Type::Kind::PCPYUD_BITFIELD && + (m_kind == Kind::AND || m_kind == Kind::OR)) { + // anding a bitfield should return the bitfield type. + return TP_Type::make_from_pcpyud_bitfield(arg0_type.get_bitfield_type()); + } + + // this is right but breaks something else right now. + if (m_kind == Kind::PCPYLD && arg0_type.kind == TP_Type::Kind::PCPYUD_BITFIELD) { + return arg1_type; + } + + if (m_kind == Kind::PCPYLD) { + return TP_Type::make_from_ts("uint"); + } + if (arg0_type.kind == TP_Type::Kind::INTEGER_CONSTANT_PLUS_VAR_MULT && m_kind == Kind::ADD) { FieldReverseLookupInput rd_in; rd_in.offset = arg0_type.get_add_int_constant(); diff --git a/decompiler/IR2/Env.h b/decompiler/IR2/Env.h index df5de86c37..42afcbcdba 100644 --- a/decompiler/IR2/Env.h +++ b/decompiler/IR2/Env.h @@ -82,6 +82,7 @@ class Env { VariableWithCast get_variable_and_cast(const RegisterAccess& access) const; std::optional get_user_cast_for_access(const RegisterAccess& access) const; TypeSpec get_variable_type(const RegisterAccess& access, bool using_user_var_types) const; + TP_Type get_variable_tp_type(const RegisterAccess& access, bool using_user_var_types) const; /*! * Get the types in registers _after_ the given operation has completed. diff --git a/decompiler/IR2/Form.cpp b/decompiler/IR2/Form.cpp index df47048ee9..189e6b41f4 100644 --- a/decompiler/IR2/Form.cpp +++ b/decompiler/IR2/Form.cpp @@ -1904,10 +1904,11 @@ void GenericElement::get_modified_regs(RegSet& regs) const { CastElement::CastElement(TypeSpec type, Form* source, bool numeric) : m_type(std::move(type)), m_source(source), m_numeric(numeric) { - source->parent_element = this; + m_source->parent_element = this; } goos::Object CastElement::to_form_internal(const Env& env) const { + // assert(m_source->parent_element == this); auto atom = form_as_atom(m_source); if (atom && atom->is_var()) { return pretty_print::build_list( @@ -1919,21 +1920,25 @@ goos::Object CastElement::to_form_internal(const Env& env) const { } void CastElement::apply(const std::function& f) { + // assert(m_source->parent_element == this); f(this); m_source->apply(f); } void CastElement::apply_form(const std::function& f) { + // assert(m_source->parent_element == this); m_source->apply_form(f); } void CastElement::collect_vars(RegAccessSet& vars, bool recursive) const { + // assert(m_source->parent_element == this); if (recursive) { m_source->collect_vars(vars, recursive); } } void CastElement::get_modified_regs(RegSet& regs) const { + assert(m_source->parent_element == this); m_source->get_modified_regs(regs); } diff --git a/decompiler/IR2/Form.h b/decompiler/IR2/Form.h index 06d36e1c1f..d0bc3995e9 100644 --- a/decompiler/IR2/Form.h +++ b/decompiler/IR2/Form.h @@ -54,6 +54,10 @@ class FormElement { bool allow_side_effects); bool is_popped() const { return m_popped; } + FormElement() = default; + FormElement(const FormElement& other) = delete; + FormElement& operator=(const FormElement& other) = delete; + void mark_popped() { assert(!m_popped); m_popped = true; diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index 658ba88ac0..0a98b07948 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -1113,6 +1113,29 @@ void SimpleExpressionElement::update_from_stack_pcypld(const Env& env, } } + /* + pcpyud v1, s4, r0 + ld a0, L152(fp) + and v1, v1, a0 + lui a0, 1 + dsll32 a0, a0, 0 + or v1, v1, a0 + pcpyld v1, v1, s4 + por s4, v1, r0 + */ + + auto as_mod = args.at(0)->try_as_element(); + if (as_mod && as_mod->from_pcpyud()) { + auto base_form = as_mod->base()->to_form(env); + auto a1_form = args.at(1)->to_form(env); + if (base_form == a1_form) { + as_mod->clear_pcpyud_flag(); + result->push_back(as_mod); + return; + } else { + fmt::print("pcpyud rewrite form fail: {} {}\n", base_form.print(), a1_form.print()); + } + } auto new_form = pool.alloc_element( GenericOperator::make_fixed(FixedOperatorKind::PCPYLD), args.at(0), args.at(1)); result->push_back(new_form); @@ -1262,16 +1285,45 @@ void SimpleExpressionElement::update_from_stack_logor_or_logand(const Env& env, FormStack& stack, std::vector* result, bool allow_side_effects) { + // grab the normal variable type auto arg0_type = env.get_variable_type(m_expr.get_arg(0).var(), true); + // and try to get it as a bitfield auto type_info = env.dts->ts.lookup_type(arg0_type); auto bitfield_info = dynamic_cast(type_info); + bool had_pcpyud = false; + TypeSpec bitfield_type = arg0_type; + + if (!bitfield_info) { + // the above won't work if we're already done a pcpyud to grab the upper 64 bits. + // we need to grab the type in the register (a TP_type) and check + const auto& arg0_reg_type = + env.get_types_before_op(m_expr.get_arg(0).var().idx()).get(m_expr.get_arg(0).var().reg()); + if (arg0_reg_type.kind == TP_Type::Kind::PCPYUD_BITFIELD) { + // yes! + had_pcpyud = true; + bitfield_info = + dynamic_cast(env.dts->ts.lookup_type(arg0_reg_type.get_bitfield_type())); + assert(bitfield_info); + } else if (arg0_reg_type.kind == TP_Type::Kind::PCPYUD_BITFIELD_AND) { + // already have the pcpyud in the thing. + bitfield_info = + dynamic_cast(env.dts->ts.lookup_type(arg0_reg_type.get_bitfield_type())); + assert(bitfield_info); + } + } + if (bitfield_info && m_expr.get_arg(1).is_int()) { // andi, ori with bitfield. auto base = pop_to_forms({m_expr.get_arg(0).var()}, env, pool, stack, allow_side_effects).at(0); auto read_elt = dynamic_cast(base->try_as_single_element()); if (!read_elt) { - read_elt = pool.alloc_element(base, arg0_type); + read_elt = pool.alloc_element(base, bitfield_type); + assert(!had_pcpyud); + } else { + if (had_pcpyud) { + assert(read_elt->has_pcpyud()); + } } BitfieldManip::Kind manip_kind; @@ -1313,13 +1365,19 @@ void SimpleExpressionElement::update_from_stack_logor_or_logand(const Env& env, bool made_new_read_elt = false; auto read_elt = dynamic_cast(args.at(0)->try_as_single_element()); if (!read_elt) { - read_elt = pool.alloc_element(args.at(0), arg0_type); + read_elt = pool.alloc_element(args.at(0), bitfield_type); made_new_read_elt = true; + assert(!had_pcpyud); + } else { + if (had_pcpyud) { + assert(read_elt->has_pcpyud()); + } } auto stripped_arg1 = strip_int_or_uint_cast(args.at(1)); - auto arg1_atom = form_as_atom(strip_int_or_uint_cast(args.at(1))); - if (arg1_atom && arg1_atom->is_int()) { + // auto arg1_atom = form_as_atom(strip_int_or_uint_cast(args.at(1))); + auto arg1_as_int = get_goal_integer_constant(stripped_arg1, env); + if (arg1_as_int) { BitfieldManip::Kind manip_kind; if (kind == FixedOperatorKind::LOGAND) { manip_kind = BitfieldManip::Kind::LOGAND_WITH_CONSTANT_INT; @@ -1328,10 +1386,14 @@ void SimpleExpressionElement::update_from_stack_logor_or_logand(const Env& env, } else { assert(false); } - BitfieldManip step(manip_kind, arg1_atom->get_int()); + BitfieldManip step(manip_kind, *arg1_as_int); auto other = read_elt->push_step(step, env.dts->ts, pool, env); - assert(!other); // shouldn't be complete. - result->push_back(read_elt); + // assert(!other); // shouldn't be complete. + if (other) { + result->push_back(other); + } else { + result->push_back(read_elt); + } return; } else if (!made_new_read_elt) { BitfieldManip::Kind manip_kind; @@ -1847,6 +1909,13 @@ void SetVarElement::push_to_stack(const Env& env, FormPool& pool, FormStack& sta return; } + // bool skip = false; + // auto dst_type = env.get_variable_type(m_dst, false); + // auto as_bitfield = dynamic_cast(env.dts->ts.lookup_type(dst_type)); + // if (as_bitfield && as_bitfield->get_load_size() == 16) { + // skip = true; + // } + // if we are a reg-reg move that consumes the original, push it without popping from stack. // it is the Stack's responsibility to untangle these later on. if (m_src->is_single_element()) { @@ -1874,6 +1943,28 @@ void SetVarElement::push_to_stack(const Env& env, FormPool& pool, FormStack& sta // we aren't a reg-reg move, so update our source m_src->update_children_from_stack(env, pool, stack, true); + /* + auto src_as_bf_set = dynamic_cast(m_src->try_as_single_element()); + if (src_as_bf_set && !src_as_bf_set->from_pcpyud() && src_as_bf_set->mods().size() == 1) { + auto dst_form = m_dst.to_form(env, RegisterAccess::Print::AS_VARIABLE_NO_CAST); + auto src_form = src_as_bf_set->base()->to_form(env); + if (dst_form == src_form) { + // success! + auto value = src_as_bf_set->mods().at(0).value; + value->parent_element = this; + + // make the (-> thing bitfield) + auto field_token = DerefToken::make_field_name(src_as_bf_set->mods().at(0).field_name); + auto dst_dform = pool.alloc_single_element_form(nullptr, + SimpleAtom::make_var(m_dst)); auto loc_elt = pool.alloc_element(dst_dform, false, + field_token); loc_elt->inline_nested(); auto loc = pool.alloc_single_form(nullptr, loc_elt); auto + new_form_el = pool.alloc_element(loc, value); + stack.push_form_element(new_form_el, true); + return; + } + } + */ + for (auto x : m_src->elts()) { assert(x->parent_form == m_src); } @@ -1915,7 +2006,7 @@ void SetFormFormElement::push_to_stack(const Env& env, FormPool& pool, FormStack // check for bitfield setting: auto src_as_bf_set = dynamic_cast(m_src->try_as_single_element()); - if (src_as_bf_set && src_as_bf_set->mods().size() == 1) { + if (src_as_bf_set && !src_as_bf_set->from_pcpyud() && src_as_bf_set->mods().size() == 1) { auto dst_form = m_dst->to_form(env); auto src_form = src_as_bf_set->base()->to_form(env); if (dst_form == src_form) { @@ -1933,6 +2024,8 @@ void SetFormFormElement::push_to_stack(const Env& env, FormPool& pool, FormStack m_dst = loc; m_src = value; } + } else if (src_as_bf_set) { + fmt::print("invalid bf set: {}\n", src_as_bf_set->to_string(env)); } stack.push_form_element(this, true); @@ -2314,23 +2407,29 @@ void FunctionCallElement::update_from_stack(const Env& env, "type."); } - if (!env.dts->ts.should_use_virtual_methods(tp_type.method_from_type(), - tp_type.method_id())) { + bool is_res_lump = tp_type.method_from_type().base_type() == "res-lump"; + bool should_use_virtual = + env.dts->ts.should_use_virtual_methods(tp_type.method_from_type(), tp_type.method_id()); + + if (!should_use_virtual && !is_res_lump) { throw std::runtime_error( fmt::format("Method call on {} id {} used a virtual call unexpectedly.", tp_type.method_from_type().print(), tp_type.method_id())); } - // fmt::print("STACK\n{}\n\n", stack.print(env)); - auto pop = - pop_to_forms({*arg0_mr.maps.regs.at(0)}, env, pool, stack, allow_side_effects, {}, {2}) - .at(0); - // fmt::print("GOT: {}\n", pop->to_string(env)); - arg_forms.at(0) = pop; - new_form = pool.alloc_element( - GenericOperator::make_function(mr.maps.forms.at(1)), arg_forms); - result->push_back(new_form); - return; + if (should_use_virtual) { + // fmt::print("STACK\n{}\n\n", stack.print(env)); + auto pop = pop_to_forms({*arg0_mr.maps.regs.at(0)}, env, pool, stack, allow_side_effects, + {}, {2}) + .at(0); + // fmt::print("GOT: {}\n", pop->to_string(env)); + arg_forms.at(0) = pop; + + new_form = pool.alloc_element( + GenericOperator::make_function(mr.maps.forms.at(1)), arg_forms); + result->push_back(new_form); + return; + } } } } @@ -3525,9 +3624,11 @@ void ReturnElement::push_to_stack(const Env& env, FormPool& pool, FormStack& sta } std::vector new_entries; - new_entries = rewrite_to_get_var(temp_stack, pool, env.end_var(), env); + std::optional var; + new_entries = rewrite_to_get_var(temp_stack, pool, env.end_var(), env, &var); assert(!new_entries.empty()); + return_code->clear(); for (int i = 0; i < ((int)new_entries.size()) - 1; i++) { @@ -3535,6 +3636,20 @@ void ReturnElement::push_to_stack(const Env& env, FormPool& pool, FormStack& sta } return_code->push_back(new_entries.back()); + if (var) { + const auto& func_type = env.func->type.last_arg(); + if (!env.dts->ts.tc(func_type, env.get_variable_type(*var, false))) { + auto as_cast = return_code->try_as_element(); + if (as_cast) { + return_code->clear(); + as_cast->set_type(func_type); + return_code->push_back(as_cast); + } else { + return_code = cast_form(return_code, func_type, pool, env); + return_code->parent_element = this; + } + } + } stack.push_form_element(this, true); } diff --git a/decompiler/IR2/FormStack.cpp b/decompiler/IR2/FormStack.cpp index e2ea9b77ba..7538fd1121 100644 --- a/decompiler/IR2/FormStack.cpp +++ b/decompiler/IR2/FormStack.cpp @@ -349,9 +349,9 @@ std::vector FormStack::rewrite(FormPool& pool, const Env& env) con auto elt = pool.alloc_element(*e.destination, simplified_source, e.sequence_point, type, e.set_info); - e.source->parent_element = elt; auto final_elt = try_rewrites_in_place(elt, env, pool); + simplified_source->parent_element = final_elt; result.push_back(final_elt); } else { result.push_back(e.elt); @@ -411,7 +411,6 @@ std::optional rewrite_to_get_var(std::vector& defa return {}; } else { for (auto x : result) { - x->parent_form = nullptr; default_result.push_back(x); } return result_access; diff --git a/decompiler/IR2/bitfields.cpp b/decompiler/IR2/bitfields.cpp index c7777c316b..c426fe3140 100644 --- a/decompiler/IR2/bitfields.cpp +++ b/decompiler/IR2/bitfields.cpp @@ -6,6 +6,7 @@ #include "common/util/BitUtils.h" #include "decompiler/util/DecompilerTypeSystem.h" #include "decompiler/IR2/GenericElementMatcher.h" +#include "decompiler/Function/Function.h" namespace decompiler { @@ -84,8 +85,12 @@ void BitfieldStaticDefElement::get_modified_regs(RegSet& regs) const { ModifiedCopyBitfieldElement::ModifiedCopyBitfieldElement( const TypeSpec& type, Form* base, + bool from_pcpyud, const std::vector& field_modifications) - : m_type(type), m_base(base), m_field_modifications(field_modifications) { + : m_type(type), + m_base(base), + m_field_modifications(field_modifications), + m_from_pcpyud(from_pcpyud) { m_base->parent_element = this; for (auto& mod : m_field_modifications) { if (mod.value) { @@ -95,13 +100,23 @@ ModifiedCopyBitfieldElement::ModifiedCopyBitfieldElement( } goos::Object ModifiedCopyBitfieldElement::to_form_internal(const Env& env) const { - std::vector result = {pretty_print::to_symbol("copy-and-set-bf")}; - result.push_back(m_base->to_form(env)); - for (auto& def : m_field_modifications) { - result.push_back(pretty_print::to_symbol(fmt::format(":{}", def.field_name))); - result.push_back(def.value->to_form(env)); + if (m_field_modifications.size() == 1) { + std::vector result = {pretty_print::to_symbol("copy-and-set-field")}; + result.push_back(m_base->to_form(env)); + for (auto& def : m_field_modifications) { + result.push_back(pretty_print::to_symbol(fmt::format("{}", def.field_name))); + result.push_back(def.value->to_form(env)); + } + return pretty_print::build_list(result); + } else { + std::vector result = {pretty_print::to_symbol("copy-and-set-bf-multi")}; + result.push_back(m_base->to_form(env)); + for (auto& def : m_field_modifications) { + result.push_back(pretty_print::to_symbol(fmt::format(":{}", def.field_name))); + result.push_back(def.value->to_form(env)); + } + return pretty_print::build_list(result); } - return pretty_print::build_list(result); } void ModifiedCopyBitfieldElement::apply(const std::function& f) { @@ -220,7 +235,8 @@ BitField find_field(const TypeSystem& ts, namespace { std::optional find_field_from_mask(const TypeSystem& ts, const BitFieldType* type, - uint64_t mask) { + uint64_t mask, + bool upper_64) { // try to find a field that is masked by this: auto mask_range = get_bit_range(mask); if (!mask_range) { @@ -228,6 +244,10 @@ std::optional find_field_from_mask(const TypeSystem& ts, return {}; } + if (upper_64) { + mask_range = Range(mask_range->first() + 64, mask_range->last() + 64); + } + return find_field(ts, type, mask_range->first(), mask_range->size(), {}); } @@ -241,7 +261,8 @@ Form* strip_int_or_uint_cast(Form* in) { std::optional get_bitfield_initial_set(Form* form, const BitFieldType* type, - const TypeSystem& ts) { + const TypeSystem& ts, + int offset_in_bitfield) { // (shr (shl arg1 59) 44) for example { auto matcher = Matcher::op(GenericOpMatcher::fixed(FixedOperatorKind::SHR), @@ -255,7 +276,7 @@ std::optional get_bitfield_initial_set(Form* form, int right = mr.maps.ints.at(2); int size = 64 - left; int offset = left - right; - auto f = find_field(ts, type, offset, size, {}); + auto f = find_field(ts, type, offset + offset_in_bitfield, size, {}); BitFieldDef def; def.value = value; def.field_name = f.name(); @@ -278,7 +299,7 @@ std::optional get_bitfield_initial_set(Form* form, int right = *power_of_two; int size = 64 - left; int offset = left - right; - auto f = find_field(ts, type, offset, size, {}); + auto f = find_field(ts, type, offset + offset_in_bitfield, size, {}); BitFieldDef def; def.value = value; def.field_name = f.name(); @@ -298,7 +319,7 @@ std::optional get_bitfield_initial_set(Form* form, int right = 0; int size = 64 - left; int offset = left - right; - auto f = find_field(ts, type, offset, size, {}); + auto f = find_field(ts, type, offset + offset_in_bitfield, size, {}); BitFieldDef def; def.value = value; def.field_name = f.name(); @@ -313,7 +334,7 @@ std::optional get_bitfield_initial_set(Form* form, auto value = mr_sllv.maps.forms.at(0); int size = 32; int offset = 0; - auto f = find_field(ts, type, offset, size, {}); + auto f = find_field(ts, type, offset + offset_in_bitfield, size, {}); BitFieldDef def; def.value = value; def.field_name = f.name(); @@ -345,6 +366,19 @@ void BitfieldAccessElement::push_pcpyud(const TypeSystem& ts, FormPool& pool, co } } +std::string BitfieldAccessElement::debug_print(const Env& env) const { + std::string result = "BitfieldAccessElement:"; + if (m_got_pcpyud) { + result += "pcpyud"; + } + result += '\n'; + result += fmt::format("base: {}\n", m_base->to_string(env)); + for (auto& step : m_steps) { + result += fmt::format(" {}\n", step.print()); + } + return result; +} + /*! * Add a step to the bitfield access. If this completes the access, returns a form representing the * access @@ -434,9 +468,7 @@ FormElement* BitfieldAccessElement::push_step(const BitfieldManip step, if (m_steps.empty() && step.kind == BitfieldManip::Kind::LOGAND_WITH_CONSTANT_INT) { // and with mask - if (m_got_pcpyud) { - throw std::runtime_error("unknown pcpyud LOGAND_WITH_CONSTANT_INT sequence in bitfield"); - } + // no need to do anything with pcpyud here. m_steps.push_back(step); return nullptr; } @@ -449,7 +481,7 @@ FormElement* BitfieldAccessElement::push_step(const BitfieldManip step, auto type = ts.lookup_type(m_type); auto as_bitfield = dynamic_cast(type); assert(as_bitfield); - auto field = find_field_from_mask(ts, as_bitfield, m_steps.at(0).amount); + auto field = find_field_from_mask(ts, as_bitfield, m_steps.at(0).amount, false); // todo PCPYUP if (field) { auto get_field = pool.alloc_element(m_base, false, DerefToken::make_field_name(field->name())); @@ -462,9 +494,6 @@ FormElement* BitfieldAccessElement::push_step(const BitfieldManip step, if (m_steps.size() == 1 && m_steps.at(0).kind == BitfieldManip::Kind::LOGAND_WITH_CONSTANT_INT && step.kind == BitfieldManip::Kind::LOGIOR_WITH_CONSTANT_INT) { - if (m_got_pcpyud) { - throw std::runtime_error("unknown pcpyud LOGIOR_WITH_CONSTANT_INT sequence in bitfield"); - } // this is setting a bitfield to a constant. // first, let's check that the mask is used properly: u64 mask = m_steps.at(0).amount; @@ -477,7 +506,7 @@ FormElement* BitfieldAccessElement::push_step(const BitfieldManip step, auto as_bitfield = dynamic_cast(type); assert(as_bitfield); // use the mask to figure out the field. - auto field = find_field_from_mask(ts, as_bitfield, ~mask); + auto field = find_field_from_mask(ts, as_bitfield, ~mask, m_got_pcpyud); assert(field); bool is_signed = ts.tc(TypeSpec("int"), field->type()) && !ts.tc(TypeSpec("uint"), field->type()); @@ -485,24 +514,21 @@ FormElement* BitfieldAccessElement::push_step(const BitfieldManip step, // use the field to figure out what value is being set. u64 set_value; if (is_signed) { - set_value = extract_bitfield(value, field->offset(), field->size()); + set_value = extract_bitfield(value, field->offset() - pcpyud_offset, field->size()); } else { - set_value = extract_bitfield(value, field->offset(), field->size()); + set_value = extract_bitfield(value, field->offset() - pcpyud_offset, field->size()); } BitFieldDef def; def.field_name = field->name(); def.value = pool.alloc_single_element_form( nullptr, SimpleAtom::make_int_constant(set_value)); - return pool.alloc_element(m_type, m_base, + return pool.alloc_element(m_type, m_base, m_got_pcpyud, std::vector{def}); } if (m_steps.size() == 1 && m_steps.at(0).kind == BitfieldManip::Kind::LOGAND_WITH_CONSTANT_INT && step.kind == BitfieldManip::Kind::LOGIOR_WITH_FORM) { - if (m_got_pcpyud) { - throw std::runtime_error("unknown pcpyud LOGIOR_WITH_FORM sequence in bitfield"); - } // this is setting a bitfield to a variable u64 mask = m_steps.at(0).amount; @@ -510,10 +536,10 @@ FormElement* BitfieldAccessElement::push_step(const BitfieldManip step, auto as_bitfield = dynamic_cast(type); assert(as_bitfield); // use the mask to figure out the field. - auto field = find_field_from_mask(ts, as_bitfield, ~mask); + auto field = find_field_from_mask(ts, as_bitfield, ~mask, m_got_pcpyud); assert(field); - auto val = get_bitfield_initial_set(step.value, as_bitfield, ts); + auto val = get_bitfield_initial_set(step.value, as_bitfield, ts, pcpyud_offset); if (!val) { throw std::runtime_error( @@ -524,7 +550,7 @@ FormElement* BitfieldAccessElement::push_step(const BitfieldManip step, throw std::runtime_error("Incompatible bitfield set"); } - return pool.alloc_element(m_type, m_base, + return pool.alloc_element(m_type, m_base, m_got_pcpyud, std::vector{*val}); } @@ -532,7 +558,10 @@ FormElement* BitfieldAccessElement::push_step(const BitfieldManip step, for (auto& old_step : m_steps) { lg::error(" {}", old_step.print()); } - lg::error("Current: {}\n", step.print()); + lg::error("Current: {}", step.print()); + if (m_got_pcpyud) { + lg::error("Got pcpyud\n"); + } throw std::runtime_error("Unknown state in BitfieldReadElement"); } @@ -595,6 +624,22 @@ std::optional get_goal_integer_constant(Form* in, const Env&) { return result; } } + + // also (shl (shl 16) 32) + // why. + matcher = Matcher::op(GenericOpMatcher::fixed(FixedOperatorKind::SHL), + {Matcher::op(GenericOpMatcher::fixed(FixedOperatorKind::SHL), + {Matcher::any(1), Matcher::integer(16)}), + Matcher::integer(32)}); + mr = match(matcher, in); + if (mr.matched) { + auto arg_as_atom = form_as_atom(mr.maps.forms.at(1)); + if (arg_as_atom && arg_as_atom->is_int()) { + u64 result = arg_as_atom->get_int(); + result <<= 48ull; + return result; + } + } return {}; } @@ -713,8 +758,9 @@ Form* cast_to_bitfield(const BitFieldType* type_info, // now variables for (auto& arg : args) { + // it's a 64-bit constant so correct to set offset 0 here. auto maybe_field = - get_bitfield_initial_set(strip_int_or_uint_cast(arg), type_info, env.dts->ts); + get_bitfield_initial_set(strip_int_or_uint_cast(arg), type_info, env.dts->ts, 0); if (!maybe_field) { // failed, just return cast. return pool.alloc_single_element_form(nullptr, typespec, in); diff --git a/decompiler/IR2/bitfields.h b/decompiler/IR2/bitfields.h index 1ae1b8f09d..8715378b67 100644 --- a/decompiler/IR2/bitfields.h +++ b/decompiler/IR2/bitfields.h @@ -101,6 +101,8 @@ class BitfieldAccessElement : public FormElement { FormPool& pool, const Env& env); void push_pcpyud(const TypeSystem& ts, FormPool& pool, const Env& env); + std::string debug_print(const Env& env) const; + bool has_pcpyud() const { return m_got_pcpyud; } private: bool m_got_pcpyud = false; @@ -155,6 +157,7 @@ class ModifiedCopyBitfieldElement : public FormElement { public: ModifiedCopyBitfieldElement(const TypeSpec& type, Form* base, + bool from_pcpyud, const std::vector& field_modifications); goos::Object to_form_internal(const Env& env) const override; void apply(const std::function& f) override; @@ -164,11 +167,17 @@ class ModifiedCopyBitfieldElement : public FormElement { Form* base() const { return m_base; } const std::vector mods() const { return m_field_modifications; } + bool from_pcpyud() const { return m_from_pcpyud; } + void clear_pcpyud_flag() { + assert(m_from_pcpyud); + m_from_pcpyud = false; + } private: TypeSpec m_type; Form* m_base = nullptr; std::vector m_field_modifications; + bool m_from_pcpyud = false; }; Form* cast_to_bitfield(const BitFieldType* type_info, diff --git a/decompiler/analysis/expression_build.cpp b/decompiler/analysis/expression_build.cpp index aa9b637935..97e495db5f 100644 --- a/decompiler/analysis/expression_build.cpp +++ b/decompiler/analysis/expression_build.cpp @@ -85,10 +85,15 @@ bool convert_to_expressions( if (!dts.ts.tc(f.type.last_arg(), return_type)) { // we need to cast the final value. auto to_cast = new_entries.back(); - new_entries.pop_back(); - auto cast = pool.alloc_element(f.type.last_arg(), - pool.alloc_single_form(nullptr, to_cast)); - new_entries.push_back(cast); + auto as_cast = dynamic_cast(to_cast); + if (as_cast) { + as_cast->set_type(f.type.last_arg()); + } else { + new_entries.pop_back(); + auto cast = pool.alloc_element(f.type.last_arg(), + pool.alloc_single_form(nullptr, to_cast)); + new_entries.push_back(cast); + } } } else { // or just get all the expressions diff --git a/decompiler/analysis/insert_lets.cpp b/decompiler/analysis/insert_lets.cpp index ff390f8db0..7ab2b4d838 100644 --- a/decompiler/analysis/insert_lets.cpp +++ b/decompiler/analysis/insert_lets.cpp @@ -79,8 +79,8 @@ Form* lca_form(Form* a, Form* b, const Env& env) { bi--; } if (!result) { - auto* bad = b->parent_element; - fmt::print("bad form is {} {}\n", bad->to_string(env), (void*)bad); + fmt::print("{} bad form is {}\n\n{}\n", env.func->guessed_name.to_string(), a->to_string(env), + b->to_string(env)); } assert(result); diff --git a/decompiler/analysis/variable_naming.cpp b/decompiler/analysis/variable_naming.cpp index 2d473ab7ca..7115642180 100644 --- a/decompiler/analysis/variable_naming.cpp +++ b/decompiler/analysis/variable_naming.cpp @@ -730,6 +730,25 @@ void SSA::make_vars(const Function& function, const DecompilerTypeSystem& dts) { } } + // if (function.type.last_arg() != TypeSpec("none")) { + // auto return_var = function.ir2.atomic_ops->end_op().return_var(); + // auto return_reg = return_var.reg(); + // const auto& last_block = blocks.at(blocks.size() - 1); + // const auto& last_ins = last_block.ins.at(last_block.ins.size() - 1); + // assert(last_ins.src.size() == 1); + // auto return_idx = map.var_id(last_ins.src.at(0)); + // + // if (!program_read_vars[return_reg].empty()) { + // program_read_vars[return_reg].at(return_idx).type = + // TP_Type::make_from_ts(function.type.last_arg()); + // } + // + // if (!program_write_vars[return_reg].empty()) { + // program_write_vars[return_reg].at(return_idx).type = + // TP_Type::make_from_ts(function.type.last_arg()); + // } + // } + merge_infos(program_write_vars, program_read_vars, dts); // copy types from input argument coloring moves: diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index 1ce871a73d..66fb25521f 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -9325,10 +9325,10 @@ (get-property-value-float (_type_ symbol symbol float float (pointer res-tag) pointer) float :no-virtual 12) (get-tag-index-data (_type_ int) pointer 13) (get-tag-data (_type_ res-tag) pointer 14) - (dummy-15 (_type_ res-tag) res-tag 15) + (allocate-data-memory-for-tag! (_type_ res-tag) res-tag 15) (sort! (_type_) _type_ 16) - (dummy-17 (_type_ res-tag pointer) res-lump 17) - (dummy-18 (_type_ res-tag res-tag) res-lump 18) + (add-data! (_type_ res-tag pointer) res-lump 17) + (add-32bit-data! (_type_ res-tag object) res-lump 18) (lookup-tag-idx (_type_ symbol symbol float) res-tag-pair :no-virtual 19) (make-property-data (_type_ float res-tag-pair pointer) pointer 20) (get-curve-data! (_type_ curve symbol symbol float) symbol 21) @@ -9346,9 +9346,6 @@ ;; Containing DGOs - ['GAME', 'ENGINE'] ;; Version - 3 -;; - Functions - -(define-extern part-group-pointer? function) ;; - Symbols @@ -13254,6 +13251,8 @@ ) +(define-extern part-group-pointer? (function pointer symbol)) + ;; ---------------------- ;; File - sparticle-h ;; Source Path - engine/sparticle/sparticle-h.gc diff --git a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc index fd2dd9306d..d8c69f6f60 100644 --- a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc @@ -154,13 +154,13 @@ ["L17", "ocean-colors", true], ["L15", "ocean-near-indices", true], ["L9", "ocean-near-indices", true], - + ["L14", "ocean-trans-indices", true], ["L8", "ocean-trans-indices", true], - + ["L13", "ocean-mid-indices", true], ["L7", "ocean-mid-indices", true], - + ["L11", "ocean-mid-masks", true], ["L5", "ocean-mid-masks", true], ["L4", "ocean-map", true], @@ -453,7 +453,12 @@ "trajectory": [["L18", "uint64", true]], - "res": [["L150", "uint64", true]], + "res": [ + ["L150", "uint64", true], + ["L152", "uint64", true], + ["L151", "uint64", true], + ["L153", "uint64", true] + ], "ripple": [ ["L73", "float", true], @@ -559,9 +564,7 @@ ["L12", "uint64", true] ], - "shadow-cpu": [ - ["L122", "shadow-data", true] - ], + "shadow-cpu": [["L122", "shadow-data", true]], "entity-table": [["L8", "(array entity-info)", true]], diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index 8adbe2f29f..8355f7e1e1 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -414,9 +414,7 @@ [157, "a0", "(pointer process-drawable)"] ], - "load-game-text-info": [ - [4, "v1", "game-text-info"] - ], + "load-game-text-info": [[4, "v1", "game-text-info"]], "texture-relocate": [ [[17, 21], "t4", "dma-packet"], @@ -506,12 +504,29 @@ [22, "t1", "(pointer uint64)"], [29, "t2", "(pointer uint64)"] ], - "(method 18 res-lump)": [["_stack_", 16, "res-tag"]], + "(method 18 res-lump)": [["_stack_", 16, "object"]], "(method 21 res-lump)": [ ["_stack_", 16, "res-tag"], ["_stack_", 32, "res-tag"] ], + "(method 15 res-lump)": [[132, "s5", "res-tag-pair"]], + + "(method 17 res-lump)": [[22, "s4", "(pointer pointer)"]], + + "(method 20 res-lump)": [[331, "a3", "(inline-array vector)"]], + + "(method 8 res-lump)": [ + [215, "s0", "array"], + [[0, 100], "s0", "basic"], + [[102, 120], "s0", "basic"], + [[147, 150], "s0", "collide-mesh"], + [[157, 200], "s0", "(array object)"], + //[[197, 199], "s0", "(array basic)"], + //[[236, 240], "a0", "basic"] + [235, "s0", "basic"] + ], + // SHADOW-CPU-H "(method 10 shadow-control)": [[1, "v1", "int"]], @@ -1172,5 +1187,7 @@ "blackout": [[[20, 24], "v1", "dma-packet"]], + "(method 10 external-art-control)": [[18, "v1", "pointer"]], + "placeholder-do-not-add-below": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc index 306c264332..abed42d99e 100644 --- a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc @@ -1798,7 +1798,29 @@ }, "(method 15 res-lump)": { "vars": { - "s5-0": ["tag-pair", "res-tag-pair"] + "s5-0": ["tag-pair", "res-tag-pair"], + "s2-0": "existing-tag", + "s3-0": "data-size", + "v1-25": "resource-mem" + } + }, + + "(method 17 res-lump)": { + "vars": { + "a0-2": "new-tag", + "s4-0": "tag-mem" + } + }, + + "(method 8 res-lump)": { + "args": ["obj", "block", "flags"], + "vars": { + "s3-0":"mem-use-id", + "s2-0":"mem-use-name", + "v1-22":"obj-size", + "s1-0":"tag-idx", + "s0-0":"tag-data" + } }, diff --git a/decompiler/util/TP_Type.cpp b/decompiler/util/TP_Type.cpp index 5682efefb6..bf6048708c 100644 --- a/decompiler/util/TP_Type.cpp +++ b/decompiler/util/TP_Type.cpp @@ -67,6 +67,8 @@ std::string TP_Type::print() const { } case Kind::PCPYUD_BITFIELD: return fmt::format("", m_ts.print()); + case Kind::PCPYUD_BITFIELD_AND: + return fmt::format("", m_ts.print()); case Kind::LABEL_ADDR: return ""; case Kind::INVALID: @@ -119,6 +121,8 @@ bool TP_Type::operator==(const TP_Type& other) const { return m_int == other.m_int && m_ts == other.m_ts && m_pcpyud == other.m_pcpyud; case Kind::PCPYUD_BITFIELD: return m_pcpyud == other.m_pcpyud && m_ts == other.m_ts; + case Kind::PCPYUD_BITFIELD_AND: + return m_pcpyud == other.m_pcpyud && m_ts == other.m_ts; case Kind::LABEL_ADDR: return true; case Kind::INVALID: @@ -177,6 +181,8 @@ TypeSpec TP_Type::typespec() const { return TypeSpec("int"); // ideally this is never used. case Kind::PCPYUD_BITFIELD: return TypeSpec("int"); + case Kind::PCPYUD_BITFIELD_AND: + return TypeSpec("int"); case Kind::LABEL_ADDR: return TypeSpec("pointer"); // ? case Kind::INVALID: diff --git a/decompiler/util/TP_Type.h b/decompiler/util/TP_Type.h index bde2ffa536..9d0010df38 100644 --- a/decompiler/util/TP_Type.h +++ b/decompiler/util/TP_Type.h @@ -33,6 +33,7 @@ class TP_Type { VIRTUAL_METHOD, NON_VIRTUAL_METHOD, PCPYUD_BITFIELD, + PCPYUD_BITFIELD_AND, LEFT_SHIFTED_BITFIELD, // (bitfield << some-constant) LABEL_ADDR, INVALID @@ -62,6 +63,7 @@ class TP_Type { case Kind::NON_VIRTUAL_METHOD: case Kind::LEFT_SHIFTED_BITFIELD: case Kind::PCPYUD_BITFIELD: + case Kind::PCPYUD_BITFIELD_AND: case Kind::LABEL_ADDR: return false; case Kind::UNINITIALIZED: @@ -244,6 +246,14 @@ class TP_Type { return result; } + static TP_Type make_from_pcpyud_and_bitfield(const TypeSpec& ts) { + TP_Type result; + result.kind = Kind::PCPYUD_BITFIELD_AND; + result.m_ts = ts; + result.m_pcpyud = true; + return result; + } + static TP_Type make_label_addr() { TP_Type result; result.kind = Kind::LABEL_ADDR; @@ -296,7 +306,8 @@ class TP_Type { } const TypeSpec& get_bitfield_type() const { - assert(kind == Kind::LEFT_SHIFTED_BITFIELD || kind == Kind::PCPYUD_BITFIELD); + assert(kind == Kind::LEFT_SHIFTED_BITFIELD || kind == Kind::PCPYUD_BITFIELD || + kind == Kind::PCPYUD_BITFIELD_AND); return m_ts; } diff --git a/goal_src/engine/data/res-h.gc b/goal_src/engine/data/res-h.gc index 743e0d8284..bf376f85fe 100644 --- a/goal_src/engine/data/res-h.gc +++ b/goal_src/engine/data/res-h.gc @@ -47,10 +47,10 @@ (get-property-value-float (_type_ symbol symbol float float (pointer res-tag) pointer) float :no-virtual 12) (get-tag-index-data (_type_ int) pointer 13) (get-tag-data (_type_ res-tag) pointer 14) - (dummy-15 (_type_ res-tag) res-tag 15) + (allocate-data-memory-for-tag! (_type_ res-tag) res-tag 15) (sort! (_type_) _type_ 16) - (dummy-17 (_type_ res-tag pointer) res-lump 17) - (dummy-18 (_type_ res-tag res-tag) res-lump 18) + (add-data! (_type_ res-tag pointer) res-lump 17) + (add-32bit-data! (_type_ res-tag object) res-lump 18) (lookup-tag-idx (_type_ symbol symbol float) res-tag-pair :no-virtual 19) (make-property-data (_type_ float res-tag-pair pointer) pointer 20) (get-curve-data! (_type_ curve symbol symbol float) symbol 21) diff --git a/goal_src/engine/data/res.gc b/goal_src/engine/data/res.gc index 152f0f101a..f2f50cfa18 100644 --- a/goal_src/engine/data/res.gc +++ b/goal_src/engine/data/res.gc @@ -67,7 +67,7 @@ This is updated from the entity system used in Crash 2, which had most of these (the int (if (res-ref? obj) - (* (-> obj elt-count) 4) + (* (-> obj elt-count) 4) ;; elements are pointers/references to data. (* (-> obj elt-count) (-> obj elt-type size)) ) @@ -685,6 +685,148 @@ This is updated from the entity system used in Crash 2, which had most of these obj ) +(defmethod allocate-data-memory-for-tag! res-lump ((obj res-lump) (arg0 res-tag)) + "Find space for the data described by arg0 in obj. + Returns a tag with data-offset set correctly for this res-lump. + If the lump already contains memory for the given tag, and it is big enough, + it will be reused. Alignment will be at least 8 bytes. + If the input tag has elt-count = 0, it will return a tag for elt-count = 1." + (local-vars (resource-mem pointer)) + + ;; first, look up the tag to see if it already exists in this res-lump + (let ((tag-pair (lookup-tag-idx obj (-> arg0 name) 'exact (-> arg0 key-frame)))) + (let ((existing-tag (-> obj tag (-> tag-pair lo)))) + ;; If our existing tag is valid, but our key-frame is NaN, then we forget about it. + (if (and (>= (the-as int tag-pair) 0) + (!= (-> arg0 key-frame) (-> arg0 key-frame)) ;; check for NaN + ) + (set! tag-pair (new 'static 'res-tag-pair :lo #xffffffff :hi #xffffffff)) + ) + + ;; modify the input to have at least one element + (if (zero? (-> arg0 elt-count)) + (set! (-> arg0 elt-count) 1) + ) + + ;; next, we try to find some memory + (let ((data-size (length arg0))) ;; size in bytes to store the data. + (cond + ((and (>= (the-as int tag-pair) 0) + (>= (the-as uint (length existing-tag)) (the-as uint data-size)) + ) + ;; we have enough memory in the existing tag. + ;; so we can just reuse it. + (set! resource-mem (&+ (-> obj data-base) (-> existing-tag data-offset))) + + ;; but we want at least 8 byte alignment. If this fails, allocate with 16-byte alignment from the top. + (when (nonzero? (logand (the-as int resource-mem) 7)) + (set! resource-mem (logand -16 (&+ (-> obj data-top) 15))) + (set! (-> obj data-top) (&+ resource-mem data-size)) + ) + ) + (else + ;; the existing tag wasn't there, or it wasn't big enough. + ;; just allocate new memory. + (set! resource-mem (logand -16 (&+ (-> obj data-top) 15))) + (set! (-> obj data-top) (&+ resource-mem data-size)) + ) + ) + + ;; set our data offset. + (set! (-> arg0 data-offset) (&- resource-mem (the-as uint (-> obj data-base)))) + + ;; check for overflow of the data memory + ;; this will leave things in a bad state. + (when (>= (the-as int (&+ resource-mem data-size)) + (the-as int (&+ (-> obj data-base) (-> obj data-size))) + ) + (format 0 "ERROR: attempting to a new tag ~`res-tag`P data of #x~X bytes to ~A, but data memory is full.~%" + arg0 + data-size + obj + ) + (return (the-as res-tag #f)) + ) + ) + ) + + ;; next step is to add us to the list of tags. + (cond + ((< (the-as int tag-pair) 0) + ;; we couldn't reuse an existing tag. Need to allocate another + (cond + ((>= (-> obj length) (-> obj allocated-length)) + ;; but there isn't room for another tag. + (format 0 "ERROR: attempting to a new tag ~`res-tag`P to ~A, but tag memory is full.~%" + arg0 + obj + ) + (return (the-as res-tag #f)) + ) + (else + ;; allocate a new tag and sort, so the binary search works properly. + (set! (-> obj tag (-> obj length)) arg0) + (set! (-> obj length) (+ (-> obj length) 1)) + (sort! obj) + ) + ) + ) + (else + ;; reuse the existing tag. + (set! (-> obj tag (-> tag-pair lo)) arg0) + ) + ) + ) + arg0 + ) + +(defmethod add-data! res-lump ((obj res-lump) (arg0 res-tag) (arg1 pointer)) + "Given a tag and a pointer to its data, copy it to this res-lump. + This doesn't seem to do the right thing if the given tag is a non-inline tag + with > 1 element." + + ;; get a tag for this lump with memory for the given tag. + (let ((new-tag (allocate-data-memory-for-tag! obj arg0))) + (when new-tag + ;; get pointer to new tag's memory + (let* ((v1-2 obj) + (a1-1 new-tag) + (tag-mem (&+ (-> v1-2 data-base) (-> a1-1 data-offset))) + ) + (cond + ((zero? (-> new-tag inlined?)) + ;; this seems wrong, it should loop over the length maybe? + (length new-tag) ;; unused? + (set! (-> (the-as (pointer pointer) tag-mem)) arg1) + ) + (else + ;; otherwise, copy the memory. + (let ((a2-1 (length new-tag))) + (mem-copy! tag-mem arg1 a2-1) + ) + ) + ) + ) + ) + ) + obj + ) + +(defmethod add-32bit-data! res-lump ((obj res-lump) (arg0 res-tag) (arg1 object)) + "Add a single 32-bit value using add-data." + (set! (-> arg0 inlined?) 1) + (add-data! obj arg0 (& arg1)) ;; note, only 32-bits are spilled to the stack here. + #| + (local-vars (sv-16 object)) + (set! sv-16 arg1) + (let* ((v1-0 arg0) + (a1-4 (copy-and-set-bf v1-0 :inlined? 1)) + ) + (add-data! obj a1-4 (& sv-16)) + ) + |# + ) + (defmethod get-curve-data! res-lump ((obj res-lump) (curve-target curve) (points-name symbol) (knots-name symbol) (time float)) "Read curve data and write it to curve-target. Return #t if both control points and knots data was succesfully read, #f otherwise." @@ -720,10 +862,139 @@ This is updated from the entity system used in Crash 2, which had most of these ) ) -;; method 15 res-lump -;; method 17 res-lump -;; method 18 res-lump -;; mem-usage res-lump +(define-extern part-group-pointer? (function pointer symbol)) +(declare-type nav-mesh basic) +(declare-type collide-mesh basic) +(defmethod mem-usage res-lump ((obj res-lump) (block memory-usage-block) (flags int)) + "Get the memory usage of this lump and its data" + (local-vars (sv-16 int)) + + ;; get the name and ID + (let ((mem-use-id (mem-usage-id res)) + (mem-use-name "res") + ) + (cond + ((nonzero? (logand flags 256)) + (set! mem-use-id (mem-usage-id camera)) + (set! mem-use-name "camera") + ) + ((nonzero? (logand flags 64)) + (set! mem-use-id (mem-usage-id entity)) + (set! mem-use-name "entity") + ) + ((nonzero? (logand flags 128)) + (set! mem-use-id (mem-usage-id ambient)) + (set! mem-use-name "ambient") + ) + ((nonzero? (logand flags 512)) + (set! mem-use-id (mem-usage-id art-joint-geo)) + (set! mem-use-name "art-joint-geo") + ) + ) + + ;; set up the block + (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) + (set! (-> block data mem-use-id name) mem-use-name) + + ;; the lump counts as 1 in the count field + (set! (-> block data mem-use-id count) (+ (-> block data mem-use-id count) 1)) + + ;; add the size of the lump itself. + (let ((obj-size (asize-of obj))) + (set! (-> block data mem-use-id used) + (+ (-> block data mem-use-id used) obj-size) + ) + (set! (-> block data mem-use-id total) + (+ (-> block data mem-use-id total) (logand -16 (+ obj-size 15))) + ) + ) + + ;; add the tags + (dotimes (tag-idx (-> obj length)) + (when (zero? (-> obj tag tag-idx inlined?)) + (let* ((a1-4 obj) + (a0-15 tag-idx) + (tag-data + (the-as basic + (-> (the-as (pointer uint32) (&+ (-> a1-4 data-base) (-> a1-4 tag a0-15 data-offset))) + ) + ) + ) + ) + ;; ref to non-inline data. Inline data would have been counted above. + (when (not (part-group-pointer? (the-as pointer tag-data))) + (case (-> (the-as basic tag-data) type) + ((symbol type) + ) + ((string) + ;; strings add like a normal object. + ;; this seems identical to the else case. + (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) + (set! (-> block data mem-use-id name) mem-use-name) + (set! (-> block data mem-use-id count) + (+ (-> block data mem-use-id count) 1) + ) + (let ((v1-47 (asize-of tag-data))) + (set! (-> block data mem-use-id used) + (+ (-> block data mem-use-id used) v1-47) + ) + (set! (-> block data mem-use-id total) + (+ (-> block data mem-use-id total) (logand -16 (+ v1-47 15))) + ) + ) + ) + ((nav-mesh collide-mesh) + ;; these have their own implementation. + (mem-usage tag-data block flags) + ) + ((array) + (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) + (set! (-> block data mem-use-id name) mem-use-name) + (set! (-> block data mem-use-id count) + (+ (-> block data mem-use-id count) 1) + ) + (let ((v1-63 (asize-of (the-as (array object) tag-data)))) + (set! (-> block data mem-use-id used) + (+ (-> block data mem-use-id used) v1-63) + ) + (set! (-> block data mem-use-id total) + (+ (-> block data mem-use-id total) (logand -16 (+ v1-63 15))) + ) + ) + ;; call mem usage on all of our children. + (set! sv-16 0) + (while (< sv-16 (-> (the-as array tag-data) length)) + (let ((a0-58 (-> (the-as (array object) tag-data) sv-16))) + ((method-of-type (rtype-of a0-58) mem-usage) a0-58 block flags) + ) + (set! sv-16 (+ sv-16 1)) + ) + ) + (else + ;; unknown type. + ;; we assume its nothing fancy and use the asize of. + (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) + (set! (-> block data mem-use-id name) mem-use-name) + (set! (-> block data mem-use-id count) + (+ (-> block data mem-use-id count) 1) + ) + (let ((v1-88 (asize-of tag-data))) + (set! (-> block data mem-use-id used) + (+ (-> block data mem-use-id used) v1-88) + ) + (set! (-> block data mem-use-id total) + (+ (-> block data mem-use-id total) (logand -16 (+ v1-88 15))) + ) + ) + ) + ) + ) + ) + ) + ) + ) + (the-as res-lump 0) + ) (define *res-static-buf* (malloc 'global 128)) diff --git a/goal_src/engine/sparticle/sparticle-h.gc b/goal_src/engine/sparticle/sparticle-h.gc index feff9a13ef..e140822f03 100644 --- a/goal_src/engine/sparticle/sparticle-h.gc +++ b/goal_src/engine/sparticle/sparticle-h.gc @@ -81,3 +81,5 @@ :size-assert #x34 :flag-assert #x900000034 ) + +(define-extern part-group-pointer? (function pointer symbol)) diff --git a/goal_src/kernel/gcommon.gc b/goal_src/kernel/gcommon.gc index e2e9131d6b..426bbb3987 100644 --- a/goal_src/kernel/gcommon.gc +++ b/goal_src/kernel/gcommon.gc @@ -1388,3 +1388,13 @@ ) ) ) + +;; the decompiler may fail to recognize setting fields of a 128-bit bitfield +;; and will rely on this macro: +(defmacro copy-and-set-field (original field-name field-value) + `(let ((temp-copy ,original)) + (set! (-> temp-copy ,field-name) ,field-value) + temp-copy + ) + ) + diff --git a/test/decompiler/reference/decompiler-macros.gc b/test/decompiler/reference/decompiler-macros.gc index ed281abd9f..09e598077b 100644 --- a/test/decompiler/reference/decompiler-macros.gc +++ b/test/decompiler/reference/decompiler-macros.gc @@ -190,3 +190,10 @@ `(* (/ 1.0 ,TICKS_PER_SECOND) ,vel) ) +(defmacro copy-and-set-field (original field-name field-value) + `(let ((temp-copy ,original)) + (set! (-> temp-copy ,field-name) ,field-value) + temp-copy + ) + ) + diff --git a/test/decompiler/reference/engine/data/res-h_REF.gc b/test/decompiler/reference/engine/data/res-h_REF.gc index c816137876..2a595e5a7b 100644 --- a/test/decompiler/reference/engine/data/res-h_REF.gc +++ b/test/decompiler/reference/engine/data/res-h_REF.gc @@ -36,10 +36,10 @@ (get-property-value-float (_type_ symbol symbol float float (pointer res-tag) pointer) float :no-virtual 12) (get-tag-index-data (_type_ int) pointer 13) (get-tag-data (_type_ res-tag) pointer 14) - (dummy-15 (_type_ res-tag) res-tag 15) + (allocate-data-memory-for-tag! (_type_ res-tag) res-tag 15) (sort! (_type_) _type_ 16) - (dummy-17 (_type_ res-tag pointer) res-lump 17) - (dummy-18 (_type_ res-tag res-tag) res-lump 18) + (add-data! (_type_ res-tag pointer) res-lump 17) + (add-32bit-data! (_type_ res-tag object) res-lump 18) (lookup-tag-idx (_type_ symbol symbol float) res-tag-pair :no-virtual 19) (make-property-data (_type_ float res-tag-pair pointer) pointer 20) (get-curve-data! (_type_ curve symbol symbol float) symbol 21) @@ -47,6 +47,7 @@ ) ;; definition for method 3 of type res-lump +;; INFO: this function exists in multiple non-identical object files (defmethod inspect res-lump ((obj res-lump)) (format #t "[~8x] ~A~%" obj (-> obj type)) (format #t "~Tlength: ~D~%" (-> obj length)) diff --git a/test/decompiler/reference/engine/data/res_REF.gc b/test/decompiler/reference/engine/data/res_REF.gc new file mode 100644 index 0000000000..013febf6a1 --- /dev/null +++ b/test/decompiler/reference/engine/data/res_REF.gc @@ -0,0 +1,1151 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for method 2 of type res-tag +(defmethod print res-tag ((obj res-tag)) + (if (zero? (-> obj inlined?)) + (format + #t + "#" + (-> obj name) + (-> obj key-frame) + (-> obj elt-type) + (-> obj elt-count) + ) + (format + #t + "#" + (-> obj name) + (-> obj key-frame) + (-> obj elt-type) + (-> obj elt-count) + ) + ) + obj + ) + +;; definition for method 4 of type res-tag +;; INFO: Return type mismatch uint vs int. +(defmethod length res-tag ((obj res-tag)) + (the-as int (if (zero? (-> obj inlined?)) + (* (-> obj elt-count) 4) + (* (-> obj elt-count) (-> obj elt-type size)) + ) + ) + ) + +;; definition for method 13 of type res-lump +;; Used lq/sq +(defmethod get-tag-index-data res-lump ((obj res-lump) (arg0 int)) + (&+ (-> obj data-base) (-> obj tag arg0 data-offset)) + ) + +;; definition for method 14 of type res-lump +(defmethod get-tag-data res-lump ((obj res-lump) (arg0 res-tag)) + (&+ (-> obj data-base) (-> arg0 data-offset)) + ) + +;; definition for method 0 of type res-lump +(defmethod + new + res-lump + ((allocation symbol) (type-to-make type) (data-count int) (data-size int)) + (let + ((obj + (object-new + allocation + type-to-make + (the-as + int + (+ + (+ (-> type-to-make size) (the-as uint (* (+ data-count -1) 16))) + (the-as uint data-size) + ) + ) + ) + ) + ) + (set! (-> obj allocated-length) data-count) + (set! (-> obj data-size) data-size) + (set! (-> obj length) 0) + (set! (-> obj data-base) (&-> (-> obj tag) data-count)) + (set! (-> obj data-top) (&-> (-> obj tag) data-count)) + obj + ) + ) + +;; definition for method 4 of type res-lump +(defmethod length res-lump ((obj res-lump)) + (-> obj length) + ) + +;; definition for method 5 of type res-lump +;; INFO: Return type mismatch uint vs int. +(defmethod asize-of res-lump ((obj res-lump)) + (the-as + int + (+ + (+ (-> obj type psize) (the-as uint (* (-> obj allocated-length) 16))) + (the-as uint (-> obj data-size)) + ) + ) + ) + +;; definition for method 3 of type res-lump +;; INFO: this function exists in multiple non-identical object files +;; Used lq/sq +(defmethod inspect res-lump ((obj res-lump)) + (format #t "[~8x] ~A~%" obj (-> obj type)) + (format #t "~Textra: ~A~%" (-> obj extra)) + (format #t "~Tallocated-length: ~D~%" (-> obj allocated-length)) + (format #t "~Tlength: ~D~%" (-> obj length)) + (format #t "~Tdata-base: #x~X~%" (-> obj data-base)) + (format #t "~Tdata-top: #x~X~%" (-> obj data-top)) + (format #t "~Tdata-size: #x~X~%" (-> obj data-size)) + (format #t "~Ttag[~D]: @ #x~X~%" (-> obj allocated-length) (-> obj tag)) + (dotimes (i (-> obj length)) + (format #t "~T [~D] " i) + (print (-> obj tag i)) + (let ((t9-10 format) + (a0-12 #t) + (a1-9 " @ #x~X") + (a3-2 obj) + (a2-9 i) + ) + (t9-10 a0-12 a1-9 (&+ (-> a3-2 data-base) (-> a3-2 tag a2-9 data-offset))) + ) + (cond + ((zero? (-> obj tag i inlined?)) + (let ((t9-11 format) + (a0-14 #t) + (a1-10 " = ~A~%") + (a3-4 obj) + (a2-17 i) + ) + (t9-11 + a0-14 + a1-10 + (-> + (the-as + (pointer uint32) + (&+ (-> a3-4 data-base) (-> a3-4 tag a2-17 data-offset)) + ) + ) + ) + ) + ) + (else + (format #t "~%") + ) + ) + ) + obj + ) + +;; definition for method 19 of type res-lump +;; INFO: Return type mismatch int vs res-tag-pair. +;; Used lq/sq +(defmethod + lookup-tag-idx + res-lump + ((obj res-lump) (name-sym symbol) (mode symbol) (time float)) + (local-vars (tag-idx int)) + (when + (or + (= name-sym 'id) + (= name-sym 'aid) + (= name-sym 'trans) + (= name-sym 'rot) + (= name-sym 'nav-mesh) + (= name-sym 'process-type) + (= name-sym 'task) + ) + (crash!) + 0 + ) + (if (or (not obj) (zero? obj) (<= (-> obj length) 0)) + (return (new 'static 'res-tag-pair :lo #xffffffff :hi #xffffffff)) + ) + (let ((hi-tag-idx-out -1) + (lo-tag-idx-out -1) + ) + (let ((most-recent-invalid-time-idx -1) + (type-chars + (-> (the-as (pointer uint64) (-> (symbol->string name-sym) data)) 0) + ) + ) + (let ((max-search (+ (-> obj length) -1)) + (min-search 0) + ) + (while (>= max-search min-search) + (let* ((check-idx (+ min-search (/ (- max-search min-search) 2))) + (diff + (- + type-chars + (-> + (the-as + (pointer uint64) + (-> (symbol->string (-> obj tag check-idx name)) data) + ) + 0 + ) + ) + ) + ) + (cond + ((zero? diff) + (set! tag-idx check-idx) + (goto cfg-32) + ) + ((< (the-as int diff) 0) + (set! max-search (+ check-idx -1)) + ) + (else + (set! min-search (+ check-idx 1)) + ) + ) + ) + ) + ) + (set! tag-idx -1) + (label cfg-32) + (if (< tag-idx 0) + (return (the-as res-tag-pair tag-idx)) + ) + (while + (and + (> tag-idx 0) + (= + type-chars + (-> + (the-as + (pointer uint64) + (-> (symbol->string (-> obj tag (+ tag-idx -1) name)) data) + ) + 0 + ) + ) + ) + (+! tag-idx -1) + ) + (when (= mode 'base) + (set! lo-tag-idx-out tag-idx) + (set! hi-tag-idx-out tag-idx) + (goto cfg-73) + ) + (let ((interp-tag-idx tag-idx) + (tag-ptr (&-> (-> obj tag) tag-idx)) + ) + (while + (not + (or + (>= interp-tag-idx (-> obj length)) + (< + type-chars + (-> + (the-as + (pointer uint64) + (-> (symbol->string (-> tag-ptr 0 name)) data) + ) + 0 + ) + ) + ) + ) + (cond + ((!= name-sym (-> tag-ptr 0 name)) + ) + ((= (-> tag-ptr 0 key-frame) time) + (set! lo-tag-idx-out interp-tag-idx) + (set! hi-tag-idx-out interp-tag-idx) + (goto cfg-73) + ) + ((and (>= time (-> tag-ptr 0 key-frame)) (!= mode 'exact)) + (set! lo-tag-idx-out interp-tag-idx) + (set! hi-tag-idx-out interp-tag-idx) + (if (= (-> tag-ptr 0 key-frame) -1000000000.0) + (set! most-recent-invalid-time-idx interp-tag-idx) + ) + ) + ((< time (-> tag-ptr 0 key-frame)) + (if + (and (!= lo-tag-idx-out most-recent-invalid-time-idx) (= mode 'interp)) + (set! hi-tag-idx-out interp-tag-idx) + ) + (goto cfg-73) + ) + ) + (+! interp-tag-idx 1) + (set! tag-ptr (&-> tag-ptr 1)) + ) + ) + ) + (label cfg-73) + (the-as + res-tag-pair + (logior + (logand (the-as uint #xffffffff) (the-as uint lo-tag-idx-out)) + (the-as uint (shl hi-tag-idx-out 32)) + ) + ) + ) + ) + +;; definition for method 20 of type res-lump +;; Used lq/sq +(defmethod + make-property-data + res-lump + ((obj res-lump) (time float) (result res-tag-pair) (buf pointer)) + (rlet ((vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (let* ((tag-lo (-> obj tag (-> result lo))) + (tag-hi (-> obj tag (-> result hi))) + (elt-count (-> tag-lo elt-count)) + ) + (cond + ((zero? (-> tag-lo inlined?)) + (&+ (-> obj data-base) (-> tag-lo data-offset)) + ) + ((or + (not buf) + (= (-> result lo) (-> result hi)) + (!= elt-count (-> tag-hi elt-count)) + (!= (-> tag-lo elt-type) (-> tag-hi elt-type)) + ) + (let ((a0-4 tag-lo)) + (&+ (-> obj data-base) (-> a0-4 data-offset)) + ) + ) + (else + (let* + ((interp + (/ + (- time (-> tag-lo key-frame)) + (- (-> tag-hi key-frame) (-> tag-lo key-frame)) + ) + ) + (a1-4 obj) + (a2-7 tag-lo) + (src-lo (&+ (-> a1-4 data-base) (-> a2-7 data-offset))) + (src-hi (&+ (-> obj data-base) (-> tag-hi data-offset))) + ) + (case (-> tag-lo elt-type symbol) + (('float) + (dotimes (a0-8 (the-as int elt-count)) + (set! + (-> (the-as (pointer float) (&+ buf (* a0-8 4)))) + (+ + (* + (-> (the-as (pointer float) (&+ src-lo (* a0-8 4)))) + (- 1.0 interp) + ) + (* (-> (the-as (pointer float) (&+ src-hi (* a0-8 4)))) interp) + ) + ) + ) + buf + ) + (('integer 'sinteger 'uinteger 'int64 'uint64) + (let ((a0-9 (the int (* 4096.0 interp)))) + (dotimes (t0-9 (the-as int elt-count)) + (set! + (-> (the-as (pointer int64) (&+ buf (* t0-9 8)))) + (sar + (+ + (* + (the-as + int + (-> (the-as (pointer uint64) (&+ src-lo (* t0-9 8)))) + ) + (- 4096 a0-9) + ) + (* + (the-as + int + (-> (the-as (pointer uint64) (&+ src-hi (* t0-9 8)))) + ) + a0-9 + ) + ) + 12 + ) + ) + ) + ) + buf + ) + (('int8) + (let ((a0-10 (the int (* 4096.0 interp)))) + (dotimes (t0-10 (the-as int elt-count)) + (set! + (-> (the-as (pointer int8) (&+ buf t0-10))) + (sar + (+ + (* (-> (the-as (pointer int8) (&+ src-lo t0-10))) (- 4096 a0-10)) + (* (-> (the-as (pointer int8) (&+ src-hi t0-10))) a0-10) + ) + 12 + ) + ) + ) + ) + buf + ) + (('uint8) + (let ((a0-11 (the int (* 4096.0 interp)))) + (dotimes (t0-11 (the-as int elt-count)) + (set! + (-> (the-as (pointer uint8) (&+ buf t0-11))) + (shr + (+ + (* + (-> (the-as (pointer uint8) (&+ src-lo t0-11))) + (the-as uint (- 4096 a0-11)) + ) + (* + (-> (the-as (pointer uint8) (&+ src-hi t0-11))) + (the-as uint a0-11) + ) + ) + 12 + ) + ) + ) + ) + buf + ) + (('int16) + (let ((a0-12 (the int (* 4096.0 interp)))) + (dotimes (t0-12 (the-as int elt-count)) + (set! + (-> (the-as (pointer int16) (&+ buf (* t0-12 2)))) + (sar + (+ + (* + (-> (the-as (pointer int16) (&+ src-lo (* t0-12 2)))) + (- 4096 a0-12) + ) + (* (-> (the-as (pointer int16) (&+ src-hi (* t0-12 2)))) a0-12) + ) + 12 + ) + ) + ) + ) + buf + ) + (('uint16) + (let ((a0-13 (the int (* 4096.0 interp)))) + (dotimes (t0-13 (the-as int elt-count)) + (set! + (-> (the-as (pointer uint16) (&+ buf (* t0-13 2)))) + (shr + (+ + (* + (-> (the-as (pointer uint16) (&+ src-lo (* t0-13 2)))) + (the-as uint (- 4096 a0-13)) + ) + (* + (-> (the-as (pointer uint16) (&+ src-hi (* t0-13 2)))) + (the-as uint a0-13) + ) + ) + 12 + ) + ) + ) + ) + buf + ) + (('int32) + (let ((a0-14 (the int (* 4096.0 interp)))) + (dotimes (t0-14 (the-as int elt-count)) + (set! + (-> (the-as (pointer int32) (&+ buf (* t0-14 4)))) + (sar + (+ + (* + (-> (the-as (pointer int32) (&+ src-lo (* t0-14 4)))) + (- 4096 a0-14) + ) + (* (-> (the-as (pointer int32) (&+ src-hi (* t0-14 4)))) a0-14) + ) + 12 + ) + ) + ) + ) + buf + ) + (('uint32) + (let ((a0-15 (the int (* 4096.0 interp)))) + (dotimes (t0-15 (the-as int elt-count)) + (set! + (-> (the-as (pointer uint32) (&+ buf (* t0-15 4)))) + (shr + (+ + (* + (-> (the-as (pointer uint32) (&+ src-lo (* t0-15 4)))) + (the-as uint (- 4096 a0-15)) + ) + (* + (-> (the-as (pointer uint32) (&+ src-hi (* t0-15 4)))) + (the-as uint a0-15) + ) + ) + 12 + ) + ) + ) + ) + buf + ) + (('vector) + (let ((a0-16 interp)) + (.mov vf3 a0-16) + ) + (let ((a0-17 (- 1.0 interp))) + (.mov vf4 a0-17) + ) + (dotimes (a0-18 (the-as int elt-count)) + (let ((t0-17 (+ (* a0-18 16) (the-as int src-lo)))) + (.lvf vf1 (&-> (the-as (pointer int128) t0-17))) + ) + (let ((t0-19 (+ (* a0-18 16) (the-as int src-hi)))) + (.lvf vf2 (&-> (the-as (pointer int128) t0-19))) + ) + (.mul.x.vf vf1 vf1 vf4) + (.mul.x.vf vf2 vf2 vf3) + (.add.vf vf1 vf1 vf2) + (.svf (&-> (-> (the-as (inline-array vector) buf) a0-18) quad) vf1) + ) + buf + ) + (else + (let ((a0-19 tag-lo)) + (&+ (-> obj data-base) (-> a0-19 data-offset)) + ) + ) + ) + ) + ) + ) + ) + ) + ) + +;; definition for method 9 of type res-lump +;; Used lq/sq +(defmethod + get-property-data + res-lump + ((obj res-lump) + (name symbol) + (mode symbol) + (time float) + (default pointer) + (tag-addr (pointer res-tag)) + (buf-addr pointer) + ) + (let ((tag-pair (lookup-tag-idx obj name mode time))) + (cond + ((< (the-as int tag-pair) 0) + (empty) + ) + (else + (set! default (make-property-data obj time tag-pair buf-addr)) + (if tag-addr + (set! (-> tag-addr 0) (-> obj tag (-> tag-pair lo))) + ) + ) + ) + ) + default + ) + +;; definition for method 10 of type res-lump +;; INFO: Return type mismatch object vs structure. +;; Used lq/sq +(defmethod + get-property-struct + res-lump + ((obj res-lump) + (name symbol) + (mode symbol) + (time float) + (default structure) + (tag-addr (pointer res-tag)) + (buf-addr pointer) + ) + (let ((tag-pair (lookup-tag-idx obj name mode time))) + (cond + ((< (the-as int tag-pair) 0) + (empty) + ) + (else + (set! + default + (the-as structure (make-property-data obj time tag-pair buf-addr)) + ) + (let ((tag (-> obj tag (-> tag-pair lo)))) + (if tag-addr + (set! (-> tag-addr 0) tag) + ) + (if (zero? (-> tag inlined?)) + (set! default (the-as structure (-> (the-as (pointer uint32) default)))) + (empty) + ) + ) + ) + ) + ) + (the-as structure default) + ) + +;; definition for method 11 of type res-lump +;; INFO: Return type mismatch int vs uint128. +;; Used lq/sq +(defmethod + get-property-value + res-lump + ((obj res-lump) + (name symbol) + (mode symbol) + (time float) + (default uint128) + (tag-addr (pointer res-tag)) + (buf-addr pointer) + ) + (let ((tag-pair (lookup-tag-idx obj name mode time))) + (cond + ((< (the-as int tag-pair) 0) + (empty) + ) + (else + (let* ((a0-2 (-> tag-pair lo)) + (tag (-> obj tag a0-2)) + (tag-type (-> tag elt-type)) + (data (make-property-data obj time tag-pair buf-addr)) + ) + (if tag-addr + (set! (-> tag-addr 0) tag) + ) + (cond + ((type-type? tag-type uinteger) + (case (-> tag elt-type size) + ((1) + (set! default (the-as uint128 (-> (the-as (pointer uint8) data)))) + ) + ((2) + (set! default (the-as uint128 (-> (the-as (pointer uint16) data)))) + ) + ((4) + (set! default (the-as uint128 (-> (the-as (pointer uint32) data)))) + ) + ((16) + (set! default (-> (the-as (pointer uint128) data))) + ) + (else + (set! default (the-as uint128 (-> (the-as (pointer uint64) data)))) + ) + ) + ) + ((type-type? tag-type integer) + (case (-> tag elt-type size) + ((1) + (set! default (the-as uint128 (-> (the-as (pointer int8) data)))) + ) + ((2) + (set! default (the-as uint128 (-> (the-as (pointer int16) data)))) + ) + ((4) + (set! default (the-as uint128 (-> (the-as (pointer int32) data)))) + ) + ((16) + (set! default (-> (the-as (pointer uint128) data))) + ) + (else + (set! default (the-as uint128 (-> (the-as (pointer uint64) data)))) + ) + ) + ) + ((type-type? tag-type float) + (set! + default + (the-as uint128 (the int (-> (the-as (pointer float) data)))) + ) + ) + (else + (empty) + ) + ) + ) + ) + ) + ) + (the-as uint128 default) + ) + +;; definition for method 12 of type res-lump +;; Used lq/sq +(defmethod + get-property-value-float + res-lump + ((obj res-lump) + (name symbol) + (mode symbol) + (time float) + (default float) + (tag-addr (pointer res-tag)) + (buf-addr pointer) + ) + (local-vars (v1-8 uint) (v1-11 int)) + (let ((tag-pair (lookup-tag-idx obj name mode time))) + (cond + ((< (the-as int tag-pair) 0) + (empty) + ) + (else + (let* ((a0-2 (-> tag-pair lo)) + (tag (-> obj tag a0-2)) + (tag-type (-> tag elt-type)) + (data (make-property-data obj time tag-pair buf-addr)) + ) + (if tag-addr + (set! (-> tag-addr 0) tag) + ) + (cond + ((type-type? tag-type float) + (set! default (-> (the-as (pointer float) data))) + ) + ((type-type? tag-type uinteger) + (case (-> tag elt-type size) + ((1) + (set! v1-8 (-> (the-as (pointer uint8) data))) + ) + ((2) + (set! v1-8 (-> (the-as (pointer uint16) data))) + ) + ((4) + (set! v1-8 (-> (the-as (pointer uint32) data))) + ) + ((16) + (set! v1-8 (the-as uint (-> (the-as (pointer uint128) data)))) + ) + (else + (set! v1-8 (-> (the-as (pointer uint64) data))) + ) + ) + (set! default (the float v1-8)) + ) + ((type-type? tag-type integer) + (case (-> tag elt-type size) + ((1) + (set! v1-11 (-> (the-as (pointer int8) data))) + ) + ((2) + (set! v1-11 (-> (the-as (pointer int16) data))) + ) + ((4) + (set! v1-11 (-> (the-as (pointer int32) data))) + ) + ((16) + (set! v1-11 (the-as int (-> (the-as (pointer uint128) data)))) + ) + (else + (set! v1-11 (the-as int (-> (the-as (pointer uint64) data)))) + ) + ) + (set! default (the float v1-11)) + ) + (else + (empty) + ) + ) + ) + ) + ) + ) + default + ) + +;; definition for method 16 of type res-lump +;; Used lq/sq +(defmethod sort! res-lump ((obj res-lump)) + (let ((tags-sorted -1)) + (while (nonzero? tags-sorted) + (set! tags-sorted 0) + (let ((i 0) + (tag-stop (+ (-> obj length) -2)) + ) + (while (>= tag-stop i) + (let* ((tag1 (-> obj tag i)) + (tag2 (-> obj tag (+ i 1))) + (tag-name1 + (-> + (the-as + (pointer uint64) + (-> (symbol->string (-> tag1 name)) data) + ) + 0 + ) + ) + (tag-name2 + (-> + (the-as + (pointer uint64) + (-> (symbol->string (-> tag2 name)) data) + ) + 0 + ) + ) + ) + (when + (or + (< tag-name2 tag-name1) + (and + (= tag-name1 tag-name2) + (< (-> tag2 key-frame) (-> tag1 key-frame)) + ) + ) + (+! tags-sorted 1) + (set! (-> obj tag i) tag2) + (set! (-> obj tag (+ i 1)) tag1) + ) + ) + (+! i 1) + ) + ) + ) + ) + obj + ) + +;; definition for method 15 of type res-lump +;; Used lq/sq +(defmethod allocate-data-memory-for-tag! res-lump ((obj res-lump) (arg0 res-tag)) + (local-vars (resource-mem pointer)) + (let* + ((tag-pair (lookup-tag-idx obj (-> arg0 name) 'exact (-> arg0 key-frame))) + (existing-tag (-> obj tag (-> tag-pair lo))) + ) + 0 + (if + (and + (>= (the-as int tag-pair) 0) + (!= (-> arg0 key-frame) (-> arg0 key-frame)) + ) + (set! tag-pair (new 'static 'res-tag-pair :lo #xffffffff :hi #xffffffff)) + ) + (if (zero? (-> arg0 elt-count)) + (set! arg0 (copy-and-set-field arg0 elt-count 1)) + ) + (let ((data-size (length arg0))) + (cond + ((and + (>= (the-as int tag-pair) 0) + (>= (the-as uint (length existing-tag)) (the-as uint data-size)) + ) + (set! resource-mem (&+ (-> obj data-base) (-> existing-tag data-offset))) + (when (nonzero? (logand (the-as int resource-mem) 7)) + (set! resource-mem (logand -16 (&+ (-> obj data-top) 15))) + (set! (-> obj data-top) (&+ resource-mem data-size)) + ) + ) + (else + (set! resource-mem (logand -16 (&+ (-> obj data-top) 15))) + (set! (-> obj data-top) (&+ resource-mem data-size)) + ) + ) + (let* ((a0-22 arg0) + (s4-1 + (copy-and-set-field + a0-22 + data-offset + (&- resource-mem (the-as uint (-> obj data-base))) + ) + ) + ) + (when + (>= + (the-as int (&+ resource-mem data-size)) + (the-as int (&+ (-> obj data-base) (-> obj data-size))) + ) + (format + 0 + "ERROR: attempting to a new tag ~`res-tag`P data of #x~X bytes to ~A, but data memory is full.~%" + s4-1 + data-size + obj + ) + (return (the-as res-tag #f)) + ) + (cond + ((< (the-as int tag-pair) 0) + (cond + ((>= (-> obj length) (-> obj allocated-length)) + (format + 0 + "ERROR: attempting to a new tag ~`res-tag`P to ~A, but tag memory is full.~%" + s4-1 + obj + ) + (return (the-as res-tag #f)) + ) + (else + (set! (-> obj tag (-> obj length)) s4-1) + (set! (-> obj length) (+ (-> obj length) 1)) + (sort! obj) + ) + ) + ) + (else + (set! (-> obj tag (-> tag-pair lo)) s4-1) + ) + ) + s4-1 + ) + ) + ) + ) + +;; definition for method 17 of type res-lump +(defmethod add-data! res-lump ((obj res-lump) (arg0 res-tag) (arg1 pointer)) + (let ((new-tag (allocate-data-memory-for-tag! obj arg0))) + (when new-tag + (let* ((v1-2 obj) + (a1-1 new-tag) + (tag-mem (&+ (-> v1-2 data-base) (-> a1-1 data-offset))) + ) + (cond + ((zero? (-> new-tag inlined?)) + (length new-tag) + (set! (-> (the-as (pointer pointer) tag-mem) 0) arg1) + ) + (else + (let ((a2-1 (length new-tag))) + (mem-copy! tag-mem arg1 a2-1) + ) + ) + ) + ) + ) + ) + obj + ) + +;; definition for method 18 of type res-lump +(defmethod add-32bit-data! res-lump ((obj res-lump) (arg0 res-tag) (arg1 object)) + (local-vars (sv-16 object)) + (set! sv-16 arg1) + (let* ((v1-0 arg0) + (a1-4 (copy-and-set-field v1-0 inlined? 1)) + ) + (add-data! obj a1-4 (& sv-16)) + ) + ) + +;; definition for method 21 of type res-lump +;; Used lq/sq +(defmethod + get-curve-data! + res-lump + ((obj res-lump) (arg0 curve) (arg1 symbol) (arg2 symbol) (arg3 float)) + (local-vars (sv-16 res-tag) (sv-32 res-tag)) + (let ((s5-0 #f)) + (set! sv-16 (new 'static 'res-tag)) + (let + ((a0-2 + ((method-of-object obj get-property-data) + obj + arg1 + 'exact + arg3 + (the-as pointer #f) + (& sv-16) + *res-static-buf* + ) + ) + ) + (when a0-2 + (set! (-> arg0 cverts) a0-2) + (set! (-> arg0 num-cverts) (the-as int (-> sv-16 elt-count))) + (when (< 256 (-> arg0 num-cverts)) + (format + 0 + "ERROR: curve has ~D control points--only ~D are allowed. Increase MAX-CURVE-CONTROL-POINTS or shorten the curve.~%" + (-> arg0 num-cverts) + 256 + ) + (set! (-> arg0 num-cverts) 256) + ) + (set! sv-32 (new 'static 'res-tag)) + (let + ((a0-6 + ((method-of-object obj get-property-data) + obj + arg2 + 'exact + arg3 + (the-as pointer #f) + (& sv-32) + *res-static-buf* + ) + ) + ) + (when a0-6 + (set! (-> arg0 knots) (the-as (inline-array vector) a0-6)) + (set! (-> arg0 num-knots) (the-as int (-> sv-32 elt-count))) + (set! s5-0 #t) + ) + ) + ) + ) + s5-0 + ) + ) + +;; definition for method 8 of type res-lump +;; INFO: Return type mismatch int vs res-lump. +;; Used lq/sq +(defmethod + mem-usage + res-lump + ((obj res-lump) (block memory-usage-block) (flags int)) + (local-vars (sv-16 int)) + (let ((mem-use-id 48) + (mem-use-name "res") + ) + (cond + ((nonzero? (logand flags 256)) + (set! mem-use-id 44) + (set! mem-use-name "camera") + ) + ((nonzero? (logand flags 64)) + (set! mem-use-id 43) + (set! mem-use-name "entity") + ) + ((nonzero? (logand flags 128)) + (set! mem-use-id 49) + (set! mem-use-name "ambient") + ) + ((nonzero? (logand flags 512)) + (set! mem-use-id 73) + (set! mem-use-name "art-joint-geo") + ) + ) + (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) + (set! (-> block data mem-use-id name) mem-use-name) + (set! + (-> block data mem-use-id count) + (+ (-> block data mem-use-id count) 1) + ) + (let ((obj-size (asize-of obj))) + (set! + (-> block data mem-use-id used) + (+ (-> block data mem-use-id used) obj-size) + ) + (set! + (-> block data mem-use-id total) + (+ (-> block data mem-use-id total) (logand -16 (+ obj-size 15))) + ) + ) + (dotimes (tag-idx (-> obj length)) + (when (zero? (-> obj tag tag-idx inlined?)) + (let* ((a1-4 obj) + (a0-15 tag-idx) + (tag-data + (the-as + basic + (-> + (the-as + (pointer uint32) + (&+ (-> a1-4 data-base) (-> a1-4 tag a0-15 data-offset)) + ) + ) + ) + ) + ) + (when (not (part-group-pointer? (the-as pointer tag-data))) + (case (-> tag-data type) + ((symbol type) + ) + ((string) + (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) + (set! (-> block data mem-use-id name) mem-use-name) + (set! + (-> block data mem-use-id count) + (+ (-> block data mem-use-id count) 1) + ) + (let ((v1-47 (asize-of tag-data))) + (set! + (-> block data mem-use-id used) + (+ (-> block data mem-use-id used) v1-47) + ) + (set! + (-> block data mem-use-id total) + (+ (-> block data mem-use-id total) (logand -16 (+ v1-47 15))) + ) + ) + ) + ((nav-mesh collide-mesh) + (mem-usage (the-as collide-mesh tag-data) block flags) + ) + ((array) + (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) + (set! (-> block data mem-use-id name) mem-use-name) + (set! + (-> block data mem-use-id count) + (+ (-> block data mem-use-id count) 1) + ) + (let ((v1-63 (asize-of (the-as (array object) tag-data)))) + (set! + (-> block data mem-use-id used) + (+ (-> block data mem-use-id used) v1-63) + ) + (set! + (-> block data mem-use-id total) + (+ (-> block data mem-use-id total) (logand -16 (+ v1-63 15))) + ) + ) + (set! sv-16 0) + (while (< sv-16 (-> (the-as array tag-data) length)) + (let ((a0-58 (-> (the-as (array object) tag-data) sv-16))) + ((method-of-type (rtype-of a0-58) mem-usage) a0-58 block flags) + ) + (set! sv-16 (+ sv-16 1)) + ) + ) + (else + (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) + (set! (-> block data mem-use-id name) mem-use-name) + (set! + (-> block data mem-use-id count) + (+ (-> block data mem-use-id count) 1) + ) + (let ((v1-88 (asize-of tag-data))) + (set! + (-> block data mem-use-id used) + (+ (-> block data mem-use-id used) v1-88) + ) + (set! + (-> block data mem-use-id total) + (+ (-> block data mem-use-id total) (logand -16 (+ v1-88 15))) + ) + ) + ) + ) + ) + ) + ) + ) + ) + (the-as res-lump 0) + ) + +;; definition for symbol *res-static-buf*, type pointer +(define *res-static-buf* (malloc 'global 128)) diff --git a/test/decompiler/reference/engine/debug/menu_REF.gc b/test/decompiler/reference/engine/debug/menu_REF.gc index f8e07e571e..0f21cc7dcf 100644 --- a/test/decompiler/reference/engine/debug/menu_REF.gc +++ b/test/decompiler/reference/engine/debug/menu_REF.gc @@ -726,20 +726,16 @@ ;; INFO: Return type mismatch object vs function. (defun debug-menu-func-decode ((arg0 object)) (let ((v1-1 (rtype-of arg0))) - (the-as function (the-as symbol (cond - ((or (= v1-1 symbol) (= v1-1 type)) - (the-as - symbol - (-> (the-as symbol arg0) value) - ) - ) - ((= v1-1 function) - (the-as symbol arg0) - ) - (else - (the-as symbol nothing) - ) - ) + (the-as function (cond + ((or (= v1-1 symbol) (= v1-1 type)) + (the-as symbol (-> (the-as symbol arg0) value)) + ) + ((= v1-1 function) + (the-as symbol arg0) + ) + (else + (the-as symbol nothing) + ) ) ) ) diff --git a/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc b/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc index d0bccdab09..733511c24a 100644 --- a/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc +++ b/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc @@ -5,16 +5,15 @@ ;; INFO: Return type mismatch object vs cspace. (defun cspace-by-name-no-fail ((arg0 process-drawable) (arg1 string)) (let ((result (cspace-by-name arg0 arg1))) - (the-as cspace (the-as cspace (cond - (result - (empty) - (the-as cspace result) - ) - (else - (format 0 "no cspace (~A)~%" arg1) - (the-as cspace (-> arg0 node-list data)) - ) - ) + (the-as cspace (cond + (result + (empty) + (the-as cspace result) + ) + (else + (format 0 "no cspace (~A)~%" arg1) + (the-as cspace (-> arg0 node-list data)) + ) ) ) ) diff --git a/test/decompiler/reference/engine/entity/entity-table_REF.gc b/test/decompiler/reference/engine/entity/entity-table_REF.gc index f982fce174..d0b0e7cb3e 100644 --- a/test/decompiler/reference/engine/entity/entity-table_REF.gc +++ b/test/decompiler/reference/engine/entity/entity-table_REF.gc @@ -166,7 +166,7 @@ (-> arg0 method-table 13) (the-as function (-> v1-1 a1-0)) ) - (return (-> v1-1 a1-0)) + (return (the-as entity-info (-> v1-1 a1-0))) ) ) ) diff --git a/test/decompiler/reference/engine/game/task/task-control_REF.gc b/test/decompiler/reference/engine/game/task/task-control_REF.gc index 324fd81489..90e8bacfbf 100644 --- a/test/decompiler/reference/engine/game/task/task-control_REF.gc +++ b/test/decompiler/reference/engine/game/task/task-control_REF.gc @@ -5417,7 +5417,7 @@ (task-available? (-> gp-0 stage s5-0) gp-0) ) (first-any gp-0 #t) - (return (the-as int (-> gp-0 stage s5-0 status))) + (return (the-as task-status (-> gp-0 stage s5-0 status))) ) ) ) From 1e90da8e7c91bc6bd40752b899f0d0facf1d2771 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 17 Jul 2021 17:42:31 +0000 Subject: [PATCH 13/57] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/{about.369ba9e3.js => about.7917c4b3.js} | 4 ++-- docs/js/{about.369ba9e3.js.map => about.7917c4b3.js.map} | 2 +- docs/js/{app.4862d5e7.js => app.734a4a0b.js} | 4 ++-- docs/js/{app.4862d5e7.js.map => app.734a4a0b.js.map} | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename docs/js/{about.369ba9e3.js => about.7917c4b3.js} (99%) rename docs/js/{about.369ba9e3.js.map => about.7917c4b3.js.map} (99%) rename docs/js/{app.4862d5e7.js => app.734a4a0b.js} (97%) rename docs/js/{app.4862d5e7.js.map => app.734a4a0b.js.map} (98%) diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index e3cddafd80..a8fd6c7ded 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 107169, + "value": 107452, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index e7f8d3fcbc..5523133e04 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.369ba9e3.js b/docs/js/about.7917c4b3.js similarity index 99% rename from docs/js/about.369ba9e3.js rename to docs/js/about.7917c4b3.js index e9427a9f56..4016f16b9a 100644 --- a/docs/js/about.369ba9e3.js +++ b/docs/js/about.7917c4b3.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107169,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.369ba9e3.js.map \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107452,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.7917c4b3.js.map \ No newline at end of file diff --git a/docs/js/about.369ba9e3.js.map b/docs/js/about.7917c4b3.js.map similarity index 99% rename from docs/js/about.369ba9e3.js.map rename to docs/js/about.7917c4b3.js.map index b92a00aec7..c754d92bd4 100644 --- a/docs/js/about.369ba9e3.js.map +++ b/docs/js/about.7917c4b3.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?a10c","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.369ba9e3.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?1e25","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.7917c4b3.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.4862d5e7.js b/docs/js/app.734a4a0b.js similarity index 97% rename from docs/js/app.4862d5e7.js rename to docs/js/app.734a4a0b.js index 2701273080..576c7c81fb 100644 --- a/docs/js/app.4862d5e7.js +++ b/docs/js/app.734a4a0b.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?341e","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.734a4a0b.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"7917c4b3\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file From 498947082812629a0df0f3b27dd989fac3596b1e Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Sat, 17 Jul 2021 15:00:10 -0400 Subject: [PATCH 14/57] recognize +! and set-vector (#706) " --- decompiler/IR2/FormExpressionAnalysis.cpp | 20 ++ decompiler/analysis/insert_lets.cpp | 101 +++++++ goal_src/engine/ambient/mood-tables.gc | 182 ++---------- goal_src/engine/anim/aligner.gc | 267 +++++++++--------- goal_src/engine/debug/debug-sphere.gc | 7 +- goal_src/engine/geometry/geometry.gc | 14 +- goal_src/engine/gfx/mood-h.gc | 56 +--- goal_src/engine/math/matrix.gc | 41 +-- goal_src/engine/math/quaternion.gc | 13 +- goal_src/engine/math/vector.gc | 12 +- goal_src/engine/sparticle/sparticle-h.gc | 11 +- goal_src/engine/target/joint-mod-h.gc | 37 +-- .../decompiler/reference/decompiler-macros.gc | 9 + .../engine/ambient/mood-tables_REF.gc | 182 ++---------- .../reference/engine/anim/aligner_REF.gc | 11 +- .../reference/engine/camera/camera-h_REF.gc | 4 +- .../engine/camera/math-camera_REF.gc | 36 +-- .../engine/collide/collide-frag_REF.gc | 43 +-- .../reference/engine/data/res_REF.gc | 62 +--- .../engine/debug/debug-sphere_REF.gc | 7 +- .../reference/engine/debug/menu_REF.gc | 20 +- .../reference/engine/debug/stats-h_REF.gc | 6 +- .../reference/engine/engine/connect_REF.gc | 4 +- .../engine/game/task/hint-control_REF.gc | 2 +- .../reference/engine/geometry/geometry_REF.gc | 14 +- .../reference/engine/geometry/vol-h_REF.gc | 10 +- .../reference/engine/gfx/hw/display_REF.gc | 4 +- .../reference/engine/gfx/hw/gs_REF.gc | 2 +- .../reference/engine/gfx/lights_REF.gc | 49 +--- .../reference/engine/gfx/mood-h_REF.gc | 56 +--- .../reference/engine/gfx/ripple_REF.gc | 4 +- .../engine/gfx/shrub/shrub-work_REF.gc | 6 +- .../engine/gfx/sparticle/sparticle-h_REF.gc | 11 +- .../reference/engine/gfx/texture_REF.gc | 67 ++--- .../reference/engine/gfx/tie/prototype_REF.gc | 54 ++-- .../reference/engine/gfx/wind_REF.gc | 2 +- .../reference/engine/math/matrix_REF.gc | 25 +- .../reference/engine/math/quaternion_REF.gc | 7 +- .../reference/engine/math/vector_REF.gc | 39 +-- .../engine/physics/trajectory_REF.gc | 10 +- .../reference/engine/ps2/rpc-h_REF.gc | 4 +- .../reference/engine/ps2/timer_REF.gc | 18 +- .../engine/target/joint-mod-h_REF.gc | 39 +-- .../reference/engine/ui/credits_REF.gc | 9 +- .../reference/engine/util/sync-info_REF.gc | 7 +- .../reference/kernel/gkernel_REF.gc | 2 +- test/decompiler/test_FormExpressionBuild2.cpp | 7 +- test/decompiler/test_gkernel_decomp.cpp | 2 +- 48 files changed, 557 insertions(+), 1038 deletions(-) diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index 0a98b07948..d65f80958d 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -2028,6 +2028,26 @@ void SetFormFormElement::push_to_stack(const Env& env, FormPool& pool, FormStack fmt::print("invalid bf set: {}\n", src_as_bf_set->to_string(env)); } + const std::pair in_place_ops[] = { + {FixedOperatorKind::ADDITION, FixedOperatorKind::ADDITION_IN_PLACE}, + {FixedOperatorKind::ADDITION_PTR, FixedOperatorKind::ADDITION_PTR_IN_PLACE}}; + + auto src_as_generic = m_src->try_as_element(); + if (src_as_generic) { + for (auto& op_pair : in_place_ops) { + if (src_as_generic->op().is_fixed(op_pair.first)) { + auto dst_form = m_dst->to_form(env); + auto add_form_0 = src_as_generic->elts().at(0)->to_form(env); + + if (dst_form == add_form_0) { + src_as_generic->op() = GenericOperator::make_fixed(op_pair.second); + stack.push_form_element(src_as_generic, true); + return; + } + } + } + } + stack.push_form_element(this, true); } diff --git a/decompiler/analysis/insert_lets.cpp b/decompiler/analysis/insert_lets.cpp index 7ab2b4d838..0b72781275 100644 --- a/decompiler/analysis/insert_lets.cpp +++ b/decompiler/analysis/insert_lets.cpp @@ -368,6 +368,97 @@ Form* strip_truthy(Form* in) { return in; } +FormElement* rewrite_set_vector(LetElement* in, const Env& env, FormPool& pool) { + if (in->entries().size() != 1) { + return nullptr; + } + + auto in_vec = env.get_variable_name(in->entries().at(0).dest); + + auto& body_elts = in->body()->elts(); + if (body_elts.size() != 4) { + return nullptr; + } + + std::vector sources; + for (int i = 0; i < 4; i++) { + auto elt_as_form_form = dynamic_cast(body_elts.at(i)); + if (!elt_as_form_form) { + return nullptr; + } + auto dst = elt_as_form_form->dst(); + sources.push_back(elt_as_form_form->src()); + Matcher dst_matcher = Matcher::deref(Matcher::any_reg(0), false, + {DerefTokenMatcher::string(std::string(1, "xyzw"[i]))}); + auto mr = match(dst_matcher, dst); + if (!mr.matched) { + return nullptr; + } + if (in_vec != env.get_variable_name(*mr.maps.regs.at(0))) { + return nullptr; + } + } + + std::vector args; + args.push_back(in->entries().at(0).src); + for (auto& src : sources) { + args.push_back(src); + } + + auto op = GenericOperator::make_function( + pool.alloc_single_element_form(nullptr, "set-vector!")); + return pool.alloc_element(op, args); +} + +FormElement* rewrite_set_vector_2(LetElement* in, const Env& env, FormPool& pool) { + if (in->entries().size() != 1) { + return nullptr; + } + + auto in_vec = env.get_variable_name(in->entries().at(0).dest); + auto src_as_deref = in->entries().at(0).src->try_as_element(); + if (!src_as_deref) { + return nullptr; + } + + auto& body_elts = in->body()->elts(); + if (body_elts.size() != 4) { + return nullptr; + } + + std::vector sources; + for (int i = 0; i < 4; i++) { + auto elt_as_form_form = dynamic_cast(body_elts.at(i)); + if (!elt_as_form_form) { + return nullptr; + } + auto dst = elt_as_form_form->dst(); + sources.push_back(elt_as_form_form->src()); + Matcher dst_matcher = Matcher::deref( + Matcher::any_reg(0), false, + {DerefTokenMatcher::integer(0), DerefTokenMatcher::string(std::string(1, "xyzw"[i]))}); + auto mr = match(dst_matcher, dst); + if (!mr.matched) { + return nullptr; + } + if (in_vec != env.get_variable_name(*mr.maps.regs.at(0))) { + return nullptr; + } + } + + src_as_deref->tokens().push_back(DerefToken::make_int_constant(0)); + + std::vector args; + args.push_back(in->entries().at(0).src); + for (auto& src : sources) { + args.push_back(src); + } + + auto op = GenericOperator::make_function( + pool.alloc_single_element_form(nullptr, "set-vector!")); + return pool.alloc_element(op, args); +} + ShortCircuitElement* get_or(Form* in) { // strip off truthy in = strip_truthy(in); @@ -564,6 +655,16 @@ FormElement* rewrite_let(LetElement* in, const Env& env, FormPool& pool) { return as_case_with_else; } + auto as_set_vector = rewrite_set_vector(in, env, pool); + if (as_set_vector) { + return as_set_vector; + } + + auto as_set_vector2 = rewrite_set_vector_2(in, env, pool); + if (as_set_vector2) { + return as_set_vector2; + } + // nothing matched. return nullptr; } diff --git a/goal_src/engine/ambient/mood-tables.gc b/goal_src/engine/ambient/mood-tables.gc index 04be588f1e..d7dc822e07 100644 --- a/goal_src/engine/ambient/mood-tables.gc +++ b/goal_src/engine/ambient/mood-tables.gc @@ -15,12 +15,7 @@ (set! (-> v1-0 direction z) 0.612) (set! (-> v1-0 direction w) 0.0) ) - (let ((v1-1 (-> arg0 dir0 color))) - (set! (-> v1-1 x) 0.8) - (set! (-> v1-1 y) 0.775) - (set! (-> v1-1 z) 0.7) - (set! (-> v1-1 w) 1.0) - ) + (set-vector! (-> arg0 dir0 color) 0.8 0.775 0.7 1.0) (set! (-> arg0 dir0 levels x) arg2) (let ((v1-2 (-> arg0 dir1))) (set! (-> v1-2 direction x) 0.612) @@ -28,12 +23,7 @@ (set! (-> v1-2 direction z) -0.612) (set! (-> v1-2 direction w) 0.0) ) - (let ((v1-3 (-> arg0 dir1 color))) - (set! (-> v1-3 x) 0.8) - (set! (-> v1-3 y) 0.775) - (set! (-> v1-3 z) 0.7) - (set! (-> v1-3 w) 1.0) - ) + (set-vector! (-> arg0 dir1 color) 0.8 0.775 0.7 1.0) (set! (-> arg0 dir1 levels x) arg3) (vector-matrix*! (the-as vector (-> arg0 dir0)) @@ -52,12 +42,7 @@ (set! (-> v1-4 direction z) 0.0) (set! (-> v1-4 direction w) 0.0) ) - (let ((v1-5 (-> arg0 dir2 color))) - (set! (-> v1-5 x) 0.8) - (set! (-> v1-5 y) 0.775) - (set! (-> v1-5 z) 0.7) - (set! (-> v1-5 w) 1.0) - ) + (set-vector! (-> arg0 dir2 color) 0.8 0.775 0.7 1.0) (let ((f0-26 arg4)) (set! (-> arg0 dir2 levels x) f0-26) f0-26 @@ -76,12 +61,7 @@ (set! (-> v1-0 direction z) 0.0) (set! (-> v1-0 direction w) 0.0) ) - (let ((v1-1 (-> s5-0 dir2 color))) - (set! (-> v1-1 x) 0.75) - (set! (-> v1-1 y) 0.375) - (set! (-> v1-1 z) 0.0) - (set! (-> v1-1 w) 1.0) - ) + (set-vector! (-> s5-0 dir2 color) 0.75 0.375 0.0 1.0) ) (make-light-kit (-> arg0 light-group 3) 53703.11 0.9 0.9 0.5) (make-light-kit (-> arg0 light-group 4) 54613.332 0.9 0.9 0.4) @@ -96,18 +76,8 @@ (defun make-misty-light-kit ((arg0 mood-context)) (let ((gp-0 (-> arg0 light-group 1))) (make-light-kit gp-0 24576.0 1.0 0.4 1.0) - (let ((v1-0 (-> gp-0 dir0 color))) - (set! (-> v1-0 x) 0.75) - (set! (-> v1-0 y) 0.3) - (set! (-> v1-0 z) 0.0) - (set! (-> v1-0 w) 1.0) - ) - (let ((v0-1 (-> gp-0 dir2 color))) - (set! (-> v0-1 x) 0.75) - (set! (-> v0-1 y) 0.3) - (set! (-> v0-1 z) 0.0) - (set! (-> v0-1 w) 1.0) - ) + (set-vector! (-> gp-0 dir0 color) 0.75 0.3 0.0 1.0) + (set-vector! (-> gp-0 dir2 color) 0.75 0.3 0.0 1.0) ) (none) ) @@ -122,12 +92,7 @@ (set! (-> a0-1 direction z) 0.0) (set! (-> a0-1 direction w) 1.0) ) - (let ((a0-2 (-> v1-0 dir0 color))) - (set! (-> a0-2 x) 0.375) - (set! (-> a0-2 y) 0.25) - (set! (-> a0-2 z) 0.25) - (set! (-> a0-2 w) 1.0) - ) + (set-vector! (-> v1-0 dir0 color) 0.375 0.25 0.25 1.0) (set! (-> v1-0 dir0 levels x) 1.0) (let ((a0-3 (-> v1-0 dir1))) (set! (-> a0-3 direction x) -0.6119) @@ -135,12 +100,7 @@ (set! (-> a0-3 direction z) -0.6119) (set! (-> a0-3 direction w) 1.0) ) - (let ((a0-4 (-> v1-0 dir1 color))) - (set! (-> a0-4 x) 0.25) - (set! (-> a0-4 y) 0.75) - (set! (-> a0-4 z) 1.0) - (set! (-> a0-4 w) 1.0) - ) + (set-vector! (-> v1-0 dir1 color) 0.25 0.75 1.0 1.0) (set! (-> v1-0 dir1 levels x) 0.666) (let ((a0-5 (-> v1-0 dir2))) (set! (-> a0-5 direction x) 0.9961) @@ -148,12 +108,7 @@ (set! (-> a0-5 direction z) -0.0871) (set! (-> a0-5 direction w) 1.0) ) - (let ((a0-6 (-> v1-0 dir2 color))) - (set! (-> a0-6 x) 0.0) - (set! (-> a0-6 y) 0.25) - (set! (-> a0-6 z) 1.0) - (set! (-> a0-6 w) 1.0) - ) + (set-vector! (-> v1-0 dir2 color) 0.0 0.25 1.0 1.0) (set! (-> v1-0 dir2 levels x) 1.0) ) (let ((v1-2 (-> arg0 light-group 2))) @@ -163,12 +118,7 @@ (set! (-> a0-7 direction z) 0.836) (set! (-> a0-7 direction w) 1.0) ) - (let ((a0-8 (-> v1-2 dir0 color))) - (set! (-> a0-8 x) 0.8) - (set! (-> a0-8 y) 0.8) - (set! (-> a0-8 z) 0.8) - (set! (-> a0-8 w) 1.0) - ) + (set-vector! (-> v1-2 dir0 color) 0.8 0.8 0.8 1.0) (set! (-> v1-2 dir0 levels x) 0.7) (let ((a0-9 (-> v1-2 dir1))) (set! (-> a0-9 direction x) -0.2959) @@ -176,31 +126,16 @@ (set! (-> a0-9 direction z) -0.8133) (set! (-> a0-9 direction w) 1.0) ) - (let ((a0-10 (-> v1-2 dir1 color))) - (set! (-> a0-10 x) 0.8) - (set! (-> a0-10 y) 0.8) - (set! (-> a0-10 z) 0.8) - (set! (-> a0-10 w) 1.0) - ) + (set-vector! (-> v1-2 dir1 color) 0.8 0.8 0.8 1.0) (set! (-> v1-2 dir1 levels x) 0.7) ) (let ((s5-0 (-> arg0 light-group 3))) (make-light-kit s5-0 5461.3335 1.0 0.8 0.2) - (let ((v1-4 (-> s5-0 dir0 color))) - (set! (-> v1-4 x) 0.675) - (set! (-> v1-4 y) 0.45) - (set! (-> v1-4 z) 0.15) - (set! (-> v1-4 w) 1.0) - ) + (set-vector! (-> s5-0 dir0 color) 0.675 0.45 0.15 1.0) ) (let ((s5-1 (-> arg0 light-group 4))) (make-light-kit s5-1 57344.0 1.0 0.8 0.2) - (let ((v1-5 (-> s5-1 dir0 color))) - (set! (-> v1-5 x) 0.675) - (set! (-> v1-5 y) 0.45) - (set! (-> v1-5 z) 0.15) - (set! (-> v1-5 w) 1.0) - ) + (set-vector! (-> s5-1 dir0 color) 0.675 0.45 0.15 1.0) ) (let ((v1-6 (-> arg0 light-group 5))) (let ((a0-13 (-> v1-6 dir0))) @@ -209,28 +144,13 @@ (set! (-> a0-13 direction z) 0.0) (set! (-> a0-13 direction w) 0.0) ) - (let ((a0-14 (-> v1-6 dir0 color))) - (set! (-> a0-14 x) 2.0) - (set! (-> a0-14 y) 1.0) - (set! (-> a0-14 z) 0.0) - (set! (-> a0-14 w) 1.0) - ) + (set-vector! (-> v1-6 dir0 color) 2.0 1.0 0.0 1.0) (set! (-> v1-6 dir1 levels x) 0.0) (set! (-> v1-6 dir2 levels x) 0.0) ) (let ((v1-8 (-> arg0 light-group 6))) - (let ((a0-15 (-> v1-8 dir0 color))) - (set! (-> a0-15 x) 1.0) - (set! (-> a0-15 y) 0.5) - (set! (-> a0-15 z) 0.0) - (set! (-> a0-15 w) 1.0) - ) - (let ((a0-16 (-> v1-8 dir1 color))) - (set! (-> a0-16 x) 0.6) - (set! (-> a0-16 y) 0.58125) - (set! (-> a0-16 z) 0.525) - (set! (-> a0-16 w) 1.0) - ) + (set-vector! (-> v1-8 dir0 color) 1.0 0.5 0.0 1.0) + (set-vector! (-> v1-8 dir1 color) 0.6 0.58125 0.525 1.0) (set! (-> v1-8 dir1 levels x) 0.0) (set! (-> v1-8 dir2 levels x) 0.0) ) @@ -248,12 +168,7 @@ (set! (-> v1-0 direction z) 0.0) (set! (-> v1-0 direction w) 1.0) ) - (let ((v1-1 (-> s5-0 dir0 color))) - (set! (-> v1-1 x) 1.0) - (set! (-> v1-1 y) 0.9) - (set! (-> v1-1 z) 0.0) - (set! (-> v1-1 w) 1.0) - ) + (set-vector! (-> s5-0 dir0 color) 1.0 0.9 0.0 1.0) ) (let ((s5-1 (-> arg0 light-group 2))) (make-light-kit s5-1 0.0 1.0 0.0 0.0) @@ -263,12 +178,7 @@ (set! (-> v1-2 direction z) 0.0) (set! (-> v1-2 direction w) 1.0) ) - (let ((v1-3 (-> s5-1 dir0 color))) - (set! (-> v1-3 x) 1.0) - (set! (-> v1-3 y) 0.9) - (set! (-> v1-3 z) 0.0) - (set! (-> v1-3 w) 1.0) - ) + (set-vector! (-> s5-1 dir0 color) 1.0 0.9 0.0 1.0) ) (let ((s5-2 (-> arg0 light-group 3))) (make-light-kit s5-2 0.0 1.0 0.0 0.0) @@ -278,12 +188,7 @@ (set! (-> v1-4 direction z) 0.0) (set! (-> v1-4 direction w) 1.0) ) - (let ((v1-5 (-> s5-2 dir0 color))) - (set! (-> v1-5 x) 1.0) - (set! (-> v1-5 y) 0.9) - (set! (-> v1-5 z) 0.0) - (set! (-> v1-5 w) 1.0) - ) + (set-vector! (-> s5-2 dir0 color) 1.0 0.9 0.0 1.0) ) (let ((s5-3 (-> arg0 light-group 4))) (make-light-kit s5-3 0.0 1.0 0.0 0.0) @@ -293,12 +198,7 @@ (set! (-> v1-6 direction z) 0.0) (set! (-> v1-6 direction w) 1.0) ) - (let ((v1-7 (-> s5-3 dir0 color))) - (set! (-> v1-7 x) 1.0) - (set! (-> v1-7 y) 0.9) - (set! (-> v1-7 z) 0.0) - (set! (-> v1-7 w) 1.0) - ) + (set-vector! (-> s5-3 dir0 color) 1.0 0.9 0.0 1.0) ) (let ((s5-4 (-> arg0 light-group 5))) (make-light-kit s5-4 0.0 1.0 0.0 0.0) @@ -308,12 +208,7 @@ (set! (-> v1-8 direction z) 0.0) (set! (-> v1-8 direction w) 1.0) ) - (let ((v1-9 (-> s5-4 dir0 color))) - (set! (-> v1-9 x) 1.0) - (set! (-> v1-9 y) 0.9) - (set! (-> v1-9 z) 0.0) - (set! (-> v1-9 w) 1.0) - ) + (set-vector! (-> s5-4 dir0 color) 1.0 0.9 0.0 1.0) ) (let ((gp-1 (-> arg0 light-group 6))) (make-light-kit gp-1 0.0 1.0 0.0 0.0) @@ -323,12 +218,7 @@ (set! (-> v1-10 direction z) 0.0) (set! (-> v1-10 direction w) 1.0) ) - (let ((v0-6 (-> gp-1 dir0 color))) - (set! (-> v0-6 x) 1.0) - (set! (-> v0-6 y) 0.9) - (set! (-> v0-6 z) 0.0) - (set! (-> v0-6 w) 1.0) - ) + (set-vector! (-> gp-1 dir0 color) 1.0 0.9 0.0 1.0) ) (none) ) @@ -343,12 +233,7 @@ (set! (-> a1-0 direction z) 0.2929) (set! (-> a1-0 direction w) 1.0) ) - (let ((a1-1 (-> v1-0 dir0 color))) - (set! (-> a1-1 x) 0.5) - (set! (-> a1-1 y) 1.0) - (set! (-> a1-1 z) 1.0) - (set! (-> a1-1 w) 1.0) - ) + (set-vector! (-> v1-0 dir0 color) 0.5 1.0 1.0 1.0) (set! (-> v1-0 dir0 levels x) 1.0) (let ((a1-2 (-> v1-0 dir2))) (set! (-> a1-2 direction x) 0.0) @@ -356,12 +241,7 @@ (set! (-> a1-2 direction z) 0.0) (set! (-> a1-2 direction w) 1.0) ) - (let ((v1-1 (-> v1-0 dir2 color))) - (set! (-> v1-1 x) 0.625) - (set! (-> v1-1 y) 0.375) - (set! (-> v1-1 z) 0.1) - (set! (-> v1-1 w) 1.0) - ) + (set-vector! (-> v1-0 dir2 color) 0.625 0.375 0.1 1.0) ) (let ((v1-2 (-> arg0 light-group 2))) (let ((a0-1 (-> v1-2 dir0))) @@ -370,12 +250,7 @@ (set! (-> a0-1 direction z) 0.2929) (set! (-> a0-1 direction w) 1.0) ) - (let ((a0-2 (-> v1-2 dir0 color))) - (set! (-> a0-2 x) 0.25) - (set! (-> a0-2 y) 0.5) - (set! (-> a0-2 z) 0.5) - (set! (-> a0-2 w) 1.0) - ) + (set-vector! (-> v1-2 dir0 color) 0.25 0.5 0.5 1.0) (set! (-> v1-2 dir0 levels x) 1.0) (let ((a0-3 (-> v1-2 dir2))) (set! (-> a0-3 direction x) 0.0) @@ -383,12 +258,7 @@ (set! (-> a0-3 direction z) 0.0) (set! (-> a0-3 direction w) 1.0) ) - (let ((v0-0 (-> v1-2 dir2 color))) - (set! (-> v0-0 x) 0.625) - (set! (-> v0-0 y) 0.375) - (set! (-> v0-0 z) 0.1) - (set! (-> v0-0 w) 1.0) - ) + (set-vector! (-> v1-2 dir2 color) 0.625 0.375 0.1 1.0) ) (none) ) diff --git a/goal_src/engine/anim/aligner.gc b/goal_src/engine/anim/aligner.gc index acbb227088..aca99d537f 100644 --- a/goal_src/engine/anim/aligner.gc +++ b/goal_src/engine/anim/aligner.gc @@ -12,150 +12,151 @@ (defmethod TODO-RENAME-9 align-control ((obj align-control)) (local-vars (a0-9 symbol) (s7-0 none) (ra-0 int)) (with-pp - (let ((s5-0 (-> obj process skel active-channels))) - (dotimes (s4-0 s5-0) - (let* ((a0-3 (-> obj process skel channel s4-0)) - (v1-5 (-> a0-3 frame-group)) - (a0-4 (-> a0-3 command)) - (a1-0 'stack) - (a2-0 (= a0-4 a1-0)) + (let ((s5-0 (-> obj process skel active-channels))) + (dotimes (s4-0 s5-0) + (let* ((a0-3 (-> obj process skel channel s4-0)) + (v1-5 (-> a0-3 frame-group)) + (a0-4 (-> a0-3 command)) + (a1-0 'stack) + (a2-0 (= a0-4 a1-0)) + ) + (cond + ((or a2-0 (begin + (set! a1-0 'stack1) + (= a0-4 a1-0) + ) + ) + ) + (else + ; TODO - support decompiling the return-from-thread + ; TODO - properly decompile the `go`to + ; (when (!= (-> v1-5 type) art-joint-anim) + ; (let + ; ((t9-0 (the-as (function object object object object) enter-state)) + ; (a0-7 "align joint-anim") + ; ) + ; (set! (-> pp next-state) process-drawable-art-error) + ; (t9-0 a0-7 (the-as none a1-0) a2-0) + ; ) + ; (.lw ra-0 return-from-thread s7-0) + ; (.jr ra-0) + ; (nop!) + ; 0 + ; ) + 0 + ) ) + ) + ) + ) + (let* ((a0-8 (-> obj process skel root-channel 0)) + (v1-16 (-> a0-8 frame-group)) + (f0-0 (-> a0-8 frame-num)) + ) + (= (-> a0-8 num-func) num-func-loop!) (cond - ((or a2-0 (begin - (set! a1-0 'stack1) - (= a0-4 a1-0) - ) + ((or (not v1-16) (!= (-> obj frame-group) v1-16)) + (set! a0-9 #t) + ) + ((= (-> a0-8 num-func) num-func-loop!) + (set! a0-9 (< (* (-> a0-8 param 0) (- f0-0 (-> obj frame-num))) 0.0)) + ) + (else + (set! a0-9 (= f0-0 0.0)) ) ) - (else - ; TODO - support decompiling the return-from-thread - ; TODO - properly decompile the `go`to - ; (when (!= (-> v1-5 type) art-joint-anim) - ; (let - ; ((t9-0 (the-as (function object object object object) enter-state)) - ; (a0-7 "align joint-anim") - ; ) - ; (set! (-> pp next-state) process-drawable-art-error) - ; (t9-0 a0-7 (the-as none a1-0) a2-0) - ; ) - ; (.lw ra-0 return-from-thread s7-0) - ; (.jr ra-0) - ; (nop!) - ; 0 - ; ) - 0 + (if a0-9 + (set! (-> obj flags) (logior (-> obj flags) 1)) + (set! (-> obj flags) (logand -2 (the-as int (-> obj flags)))) + ) + (set! (-> obj frame-group) v1-16) + (set! (-> obj frame-num) f0-0) + ) + (mem-copy! + (the-as pointer (-> obj transform 1)) + (the-as pointer (-> obj transform)) + 48 + ) + (quaternion-copy! + (the-as quaternion (-> obj transform 1 rot)) + (-> obj align quat) + ) + (set! (-> obj transform 1 scale quad) (-> obj align scale quad)) + (let* ((a2-5 (-> obj matrix 1)) + (a3-0 (-> obj matrix)) + (v1-19 (-> a3-0 0 vector 0 quad)) + (a0-18 (-> a3-0 0 vector 1 quad)) + (a1-12 (-> a3-0 0 vector 2 quad)) + (a3-1 (-> a3-0 0 vector 3 quad)) + ) + (set! (-> a2-5 vector 0 quad) v1-19) + (set! (-> a2-5 vector 1 quad) a0-18) + (set! (-> a2-5 vector 2 quad) a1-12) + (set! (-> a2-5 vector 3 quad) a3-1) + ) + (let ((s5-1 (-> obj process node-list data 1))) + (cspace<-matrix-no-push-joint! s5-1 (the-as matrix (-> obj process skel))) + (let* ((v1-23 (-> obj matrix)) + (a3-2 (-> s5-1 bone transform)) + (a0-21 (-> a3-2 vector 0 quad)) + (a1-14 (-> a3-2 vector 1 quad)) + (a2-6 (-> a3-2 vector 2 quad)) + (a3-3 (-> a3-2 vector 3 quad)) + ) + (set! (-> v1-23 0 vector 0 quad) a0-21) + (set! (-> v1-23 0 vector 1 quad) a1-14) + (set! (-> v1-23 0 vector 2 quad) a2-6) + (set! (-> v1-23 0 vector 3 quad) a3-3) + ) + (vector*! + (the-as vector (-> obj transform)) + (-> s5-1 bone position) + (-> obj process root scale) + ) + ) + (vector-! + (the-as vector (-> obj delta)) + (the-as vector (-> obj transform)) + (the-as vector (-> obj transform 1)) + ) + (set-vector! + (-> obj align scale) + (vector-length (the-as vector (-> obj matrix))) + (vector-length (-> obj matrix 0 vector 1)) + (vector-length (-> obj matrix 0 vector 2)) + 1.0 + ) + (vector-! + (-> obj delta scale) + (-> obj align scale) + (-> obj transform 1 scale) + ) + (let + ((a2-8 + (matrix-inv-scale! (new 'stack-no-clear 'matrix) (-> obj align scale)) + ) + ) + (quaternion-normalize! + (matrix->quaternion + (-> obj align quat) + (matrix*! a2-8 (the-as matrix (-> obj matrix)) a2-8) ) ) ) - ) - ) - (let* ((a0-8 (-> obj process skel root-channel 0)) - (v1-16 (-> a0-8 frame-group)) - (f0-0 (-> a0-8 frame-num)) - ) - (= (-> a0-8 num-func) num-func-loop!) - (cond - ((or (not v1-16) (!= (-> obj frame-group) v1-16)) - (set! a0-9 #t) - ) - ((= (-> a0-8 num-func) num-func-loop!) - (set! a0-9 (< (* (-> a0-8 param 0) (- f0-0 (-> obj frame-num))) 0.0)) - ) - (else - (set! a0-9 (= f0-0 0.0)) - ) - ) - (if a0-9 - (set! (-> obj flags) (logior (-> obj flags) 1)) - (set! (-> obj flags) (logand -2 (the-as int (-> obj flags)))) - ) - (set! (-> obj frame-group) v1-16) - (set! (-> obj frame-num) f0-0) - ) - (mem-copy! - (the-as pointer (-> obj transform 1)) - (the-as pointer (-> obj transform)) - 48 - ) - (quaternion-copy! - (the-as quaternion (-> obj transform 1 rot)) - (-> obj align quat) - ) - (set! (-> obj transform 1 scale quad) (-> obj align scale quad)) - (let* ((a2-5 (-> obj matrix 1)) - (a3-0 (-> obj matrix)) - (v1-19 (-> a3-0 0 vector 0 quad)) - (a0-18 (-> a3-0 0 vector 1 quad)) - (a1-12 (-> a3-0 0 vector 2 quad)) - (a3-1 (-> a3-0 0 vector 3 quad)) - ) - (set! (-> a2-5 vector 0 quad) v1-19) - (set! (-> a2-5 vector 1 quad) a0-18) - (set! (-> a2-5 vector 2 quad) a1-12) - (set! (-> a2-5 vector 3 quad) a3-1) - ) - (let ((s5-1 (-> obj process node-list data 1))) - (cspace<-matrix-no-push-joint! s5-1 (the-as matrix (-> obj process skel))) - (let* ((v1-23 (-> obj matrix)) - (a3-2 (-> s5-1 bone transform)) - (a0-21 (-> a3-2 vector 0 quad)) - (a1-14 (-> a3-2 vector 1 quad)) - (a2-6 (-> a3-2 vector 2 quad)) - (a3-3 (-> a3-2 vector 3 quad)) + (let + ((a1-24 + (quaternion-inverse! + (new 'stack-no-clear 'quaternion) + (the-as quaternion (-> obj transform 1 rot)) ) - (set! (-> v1-23 0 vector 0 quad) a0-21) - (set! (-> v1-23 0 vector 1 quad) a1-14) - (set! (-> v1-23 0 vector 2 quad) a2-6) - (set! (-> v1-23 0 vector 3 quad) a3-3) - ) - (vector*! - (the-as vector (-> obj transform)) - (-> s5-1 bone position) - (-> obj process root scale) - ) - ) - (vector-! - (the-as vector (-> obj delta)) - (the-as vector (-> obj transform)) - (the-as vector (-> obj transform 1)) - ) - (let ((s5-2 (-> obj align scale))) - (set! (-> s5-2 x) (vector-length (the-as vector (-> obj matrix)))) - (set! (-> s5-2 y) (vector-length (-> obj matrix 0 vector 1))) - (set! (-> s5-2 z) (vector-length (-> obj matrix 0 vector 2))) - (set! (-> s5-2 w) 1.0) - ) - (vector-! - (-> obj delta scale) - (-> obj align scale) - (-> obj transform 1 scale) - ) - (let - ((a2-8 - (matrix-inv-scale! (new 'stack-no-clear 'matrix) (-> obj align scale)) - ) - ) - (quaternion-normalize! - (matrix->quaternion - (-> obj align quat) - (matrix*! a2-8 (the-as matrix (-> obj matrix)) a2-8) - ) - ) - ) - (let - ((a1-24 - (quaternion-inverse! - (new 'stack-no-clear 'quaternion) - (the-as quaternion (-> obj transform 1 rot)) + ) + ) + (quaternion-normalize! + (quaternion*! (-> obj delta quat) a1-24 (-> obj align quat)) ) ) - ) - (quaternion-normalize! - (quaternion*! (-> obj delta quat) a1-24 (-> obj align quat)) - ) + (-> obj delta) ) - (-> obj delta) - ) ) ;; definition for method 12 of type align-control diff --git a/goal_src/engine/debug/debug-sphere.gc b/goal_src/engine/debug/debug-sphere.gc index 7c42b88064..96b42fdba7 100644 --- a/goal_src/engine/debug/debug-sphere.gc +++ b/goal_src/engine/debug/debug-sphere.gc @@ -23,12 +23,7 @@ (f30-0 1.0) (s4-0 0) ) - (let ((v1-0 s5-0)) - (set! (-> v1-0 x) 0.0) - (set! (-> v1-0 y) 0.0) - (set! (-> v1-0 z) 0.0) - (set! (-> v1-0 w) 1.0) - ) + (set-vector! s5-0 0.0 0.0 0.0 1.0) (dotimes (s3-0 10) (let ((f28-0 (* f30-0 (sin (* 3276.8 (the float s3-0))))) (f26-0 (* f30-0 (sin (* 3276.8 (the float (+ s3-0 1)))))) diff --git a/goal_src/engine/geometry/geometry.gc b/goal_src/engine/geometry/geometry.gc index cc1613eaac..d27fcee95a 100644 --- a/goal_src/engine/geometry/geometry.gc +++ b/goal_src/engine/geometry/geometry.gc @@ -917,18 +917,8 @@ (s5-0 (new-stack-vector0)) (gp-0 (new-stack-vector0)) ) - (let ((v1-3 s4-0)) - (set! (-> v1-3 x) 0.0) - (set! (-> v1-3 y) 0.0) - (set! (-> v1-3 z) 0.0) - (set! (-> v1-3 w) 1.0) - ) - (let ((v1-4 a1-2)) - (set! (-> v1-4 x) 100.0) - (set! (-> v1-4 y) 0.0) - (set! (-> v1-4 z) 0.0) - (set! (-> v1-4 w) 10000.0) - ) + (set-vector! s4-0 0.0 0.0 0.0 1.0) + (set-vector! a1-2 100.0 0.0 0.0 10000.0) (let ((a2-1 (circle-circle-xz-intersect s4-0 a1-2 s5-0 gp-0))) (format #t "res = ~d~%" a2-1) ) diff --git a/goal_src/engine/gfx/mood-h.gc b/goal_src/engine/gfx/mood-h.gc index 9d6104c914..bc687b332a 100644 --- a/goal_src/engine/gfx/mood-h.gc +++ b/goal_src/engine/gfx/mood-h.gc @@ -94,54 +94,14 @@ (defmethod new mood-context ((allocation symbol) (type-to-make type)) (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) - (let ((v1-2 (-> v0-0 times))) - (set! (-> v1-2 0 x) 1.0) - (set! (-> v1-2 0 y) 1.0) - (set! (-> v1-2 0 z) 1.0) - (set! (-> v1-2 0 w) 0.0) - ) - (let ((v1-3 (-> v0-0 times 1))) - (set! (-> v1-3 x) 1.0) - (set! (-> v1-3 y) 1.0) - (set! (-> v1-3 z) 1.0) - (set! (-> v1-3 w) 0.0) - ) - (let ((v1-4 (-> v0-0 times 2))) - (set! (-> v1-4 x) 1.0) - (set! (-> v1-4 y) 1.0) - (set! (-> v1-4 z) 1.0) - (set! (-> v1-4 w) 0.0) - ) - (let ((v1-5 (-> v0-0 times 3))) - (set! (-> v1-5 x) 1.0) - (set! (-> v1-5 y) 1.0) - (set! (-> v1-5 z) 1.0) - (set! (-> v1-5 w) 0.0) - ) - (let ((v1-6 (-> v0-0 times 4))) - (set! (-> v1-6 x) 1.0) - (set! (-> v1-6 y) 1.0) - (set! (-> v1-6 z) 1.0) - (set! (-> v1-6 w) 0.0) - ) - (let ((v1-7 (-> v0-0 times 5))) - (set! (-> v1-7 x) 1.0) - (set! (-> v1-7 y) 1.0) - (set! (-> v1-7 z) 1.0) - (set! (-> v1-7 w) 0.0) - ) - (let ((v1-8 (-> v0-0 times 6))) - (set! (-> v1-8 x) 1.0) - (set! (-> v1-8 y) 1.0) - (set! (-> v1-8 z) 1.0) - (set! (-> v1-8 w) 0.0) - ) - (let ((v1-9 (-> v0-0 times 7))) - (set! (-> v1-9 x) 1.0) - (set! (-> v1-9 y) 1.0) - (set! (-> v1-9 z) 1.0) - (set! (-> v1-9 w) 0.0) - ) + (set-vector! (-> v0-0 times 0) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 1) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 2) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 3) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 4) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 5) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 6) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 7) 1.0 1.0 1.0 0.0) v0-0 ) ) diff --git a/goal_src/engine/math/matrix.gc b/goal_src/engine/math/matrix.gc index 469e2d7378..75bb41f644 100644 --- a/goal_src/engine/math/matrix.gc +++ b/goal_src/engine/math/matrix.gc @@ -247,18 +247,11 @@ "Set dst to be ([src 1.0] * mat).xyz. Doesn't touch the w of dst. dst and vec can be the same memory" (let ((temp-vec3 (new-stack-vector0))) - ;; create a temporary vec with [x, y, z, 1.0] - (let ((v1-0 temp-vec3)) - (set! (-> v1-0 data 0) (-> vec data 0)) - (set! (-> v1-0 data 1) (-> vec data 1)) - (set! (-> v1-0 data 2) (-> vec data 2)) - (set! (-> v1-0 data 3) 1.0) - ) + (set-vector! temp-vec3 (-> vec x) (-> vec y) (-> vec z) 1.0) (vector-matrix*! temp-vec3 temp-vec3 mat) - ;; only write back x,y,z - (set! (-> dst data 0) (-> temp-vec3 data 0)) - (set! (-> dst data 1) (-> temp-vec3 data 1)) - (set! (-> dst data 2) (-> temp-vec3 data 2)) + (set! (-> dst x) (-> temp-vec3 x)) + (set! (-> dst y) (-> temp-vec3 y)) + (set! (-> dst z) (-> temp-vec3 z)) ) dst ) @@ -267,16 +260,11 @@ "Set dst to vec rotated by the rotation in the homogeneous transform mat. mat should not have a scale/shear (the upper 3x3 should be a pure rotation)." (let ((temp-vec3 (new-stack-vector0))) - (let ((v1-0 temp-vec3)) - (set! (-> v1-0 data 0) (-> vec data 0)) - (set! (-> v1-0 data 1) (-> vec data 1)) - (set! (-> v1-0 data 2) (-> vec data 2)) - (set! (-> v1-0 data 3) 1.0) - ) + (set-vector! temp-vec3 (-> vec x) (-> vec y) (-> vec z) 1.0) (vector-rotate*! temp-vec3 temp-vec3 mat) - (set! (-> dst data 0) (-> temp-vec3 data 0)) - (set! (-> dst data 1) (-> temp-vec3 data 1)) - (set! (-> dst data 2) (-> temp-vec3 data 2)) + (set! (-> dst x) (-> temp-vec3 x)) + (set! (-> dst y) (-> temp-vec3 y)) + (set! (-> dst z) (-> temp-vec3 z)) ) dst ) @@ -787,12 +775,13 @@ ;; the vector-sincos! lets us take the sine and cosine of 4 floats at a time. ;; it uses vector operations and reuses the taylor series coefficients to do this quickly - (let ((v1-0 sincos-input)) - (set! (-> v1-0 data 0) (-> rots-deg data 0)) - (set! (-> v1-0 data 1) (- (-> rots-deg data 1) (-> rots-deg data 2))) - (set! (-> v1-0 data 2) (-> rots-deg data 2)) - (set! (-> v1-0 data 3) 1.0) - ) + (set-vector! + sincos-input + (-> rots-deg x) + (- (-> rots-deg y) (-> rots-deg z)) + (-> rots-deg z) + 1.0 + ) (vector-sincos! sin-vec cos-vec sincos-input) (let ((cos-y (-> cos-vec data 1)) (sin-y (-> sin-vec data 1)) diff --git a/goal_src/engine/math/quaternion.gc b/goal_src/engine/math/quaternion.gc index a7cb848d34..c4b8fc2bb3 100644 --- a/goal_src/engine/math/quaternion.gc +++ b/goal_src/engine/math/quaternion.gc @@ -1033,16 +1033,11 @@ (let ((gp-0 (new 'stack-no-clear 'matrix)) (s5-0 (new 'stack-no-clear 'vector)) ) - (quaternion->matrix gp-0 arg0) - (let ((v1-1 s5-0)) - (set! (-> v1-1 data 0) 0.0) - (set! (-> v1-1 data 1) 0.0) - (set! (-> v1-1 data 2) 1.0) - (set! (-> v1-1 data 3) 1.0) + (quaternion->matrix gp-0 arg0) + (set-vector! s5-0 0.0 0.0 1.0 1.0) + (vector-matrix*! s5-0 s5-0 gp-0) + (vector-y-angle s5-0) ) - (vector-matrix*! s5-0 s5-0 gp-0) - (vector-y-angle s5-0) - ) ) (defun-debug quaternion-validate ((arg0 quaternion)) diff --git a/goal_src/engine/math/vector.gc b/goal_src/engine/math/vector.gc index 8af926b6bb..a222ac787b 100644 --- a/goal_src/engine/math/vector.gc +++ b/goal_src/engine/math/vector.gc @@ -1270,11 +1270,11 @@ (defun rand-vu-sphere-point! ((arg0 vector) (arg1 float)) "Get a random point on the sphere at the origin with radius arg1. The point is on the surface of the sphere." - (let ((s4-0 arg0)) - (set! (-> s4-0 data 0) (rand-vu-float-range -1.0 1.0)) - (set! (-> s4-0 data 1) (rand-vu-float-range -1.0 1.0)) - (set! (-> s4-0 data 2) (rand-vu-float-range -1.0 1.0)) - (set! (-> s4-0 data 3) 1.0) - ) + (set-vector! arg0 + (rand-vu-float-range -1.0 1.0) + (rand-vu-float-range -1.0 1.0) + (rand-vu-float-range -1.0 1.0) + 1.0 + ) (vector-normalize! arg0 (rand-vu-float-range 0.0 arg1)) ) diff --git a/goal_src/engine/sparticle/sparticle-h.gc b/goal_src/engine/sparticle/sparticle-h.gc index e140822f03..c3147920e2 100644 --- a/goal_src/engine/sparticle/sparticle-h.gc +++ b/goal_src/engine/sparticle/sparticle-h.gc @@ -7,11 +7,12 @@ (define *sp-frame-time* (new 'global 'vector)) -(let ((v1-1 *sp-frame-time*)) - (set! (-> v1-1 x) 0.00000000000000000000000000000000000001175495) - (set! (-> v1-1 y) 5.0) - (set! (-> v1-1 z) 1.0) - (set! (-> v1-1 w) 1.0) +(set-vector! + *sp-frame-time* + 0.00000000000000000000000000000000000001175495 + 5.0 + 1.0 + 1.0 ) (define *sp-60-hz* #t) diff --git a/goal_src/engine/target/joint-mod-h.gc b/goal_src/engine/target/joint-mod-h.gc index 2a2f2c1bd1..2f0e4fcd4f 100644 --- a/goal_src/engine/target/joint-mod-h.gc +++ b/goal_src/engine/target/joint-mod-h.gc @@ -82,12 +82,7 @@ (set! (-> obj joint) (-> (-> proc node-list) data joint-idx)) (set-mode! obj mode) ;; set defaults. - (let ((twist-max (-> obj twist-max))) - (set! (-> twist-max x) 8192.0) - (set! (-> twist-max y) 11832.889) - (set! (-> twist-max z) 0.0) - (set! (-> twist-max w) 1.0) - ) + (set-vector! (-> obj twist-max) 8192.0 11832.889 0.0 1.0) (set! (-> obj up) (the-as uint 1)) (set! (-> obj nose) (the-as uint 2)) (set! (-> obj ear) (the-as uint 0)) @@ -140,12 +135,7 @@ (set! (-> joint param2) #f) (vector-reset! (-> obj trans)) (quaternion-identity! (-> obj quat)) - (let ((v1-2 (-> obj scale))) - (set! (-> v1-2 x) 1.0) - (set! (-> v1-2 y) 1.0) - (set! (-> v1-2 z) 1.0) - (set! (-> v1-2 w) 1.0) - ) + (set-vector! (-> obj scale) 1.0 1.0 1.0 1.0) (set! (-> obj max-dist) (the-as float #f)) ) (((joint-mod-handler-mode joint-set*)) @@ -154,12 +144,7 @@ (set! (-> joint param2) #f) (vector-reset! (-> obj trans)) (quaternion-identity! (-> obj quat)) - (let ((v1-4 (-> obj scale))) - (set! (-> v1-4 x) 1.0) - (set! (-> v1-4 y) 1.0) - (set! (-> v1-4 z) 1.0) - (set! (-> v1-4 w) 1.0) - ) + (set-vector! (-> obj scale) 1.0 1.0 1.0 1.0) (set! (-> obj max-dist) (the-as float #f)) ) ) @@ -676,14 +661,9 @@ ) (vector*! (-> arg1 scale) (-> arg1 scale) (-> s5-0 scale)) (cspace<-parented-transformq-joint! arg0 arg1) - (when (-> s5-0 max-dist) - (let ((v1-4 (-> arg0 bone scale))) - (set! (-> v1-4 x) 1.0) - (set! (-> v1-4 y) 1.0) - (set! (-> v1-4 z) 1.0) - (set! (-> v1-4 w) 1.0) + (if (-> s5-0 max-dist) + (set-vector! (-> arg0 bone scale) 1.0 1.0 1.0 1.0) ) - ) ) (none) ) @@ -757,12 +737,7 @@ (set! (-> v0-0 wheel-radius) arg2) (set! (-> v0-0 wheel-axis) arg3) (set! (-> v0-0 angle) 0.0) - (let ((v1-2 (-> v0-0 last-position))) - (set! (-> v1-2 x) 0.0) - (set! (-> v1-2 y) 0.0) - (set! (-> v1-2 z) 0.0) - (set! (-> v1-2 w) 1.0) - ) + (set-vector! (-> v0-0 last-position) 0.0 0.0 0.0 1.0) (let ((v1-5 (-> (-> arg0 node-list) data arg1))) (set! (-> v1-5 param0) joint-mod-wheel-callback) (set! (-> v1-5 param1) v0-0) diff --git a/test/decompiler/reference/decompiler-macros.gc b/test/decompiler/reference/decompiler-macros.gc index 09e598077b..258c10976d 100644 --- a/test/decompiler/reference/decompiler-macros.gc +++ b/test/decompiler/reference/decompiler-macros.gc @@ -197,3 +197,12 @@ ) ) +(defmacro set-vector! (v xv yv zv wv) + "Set all fields in a vector" + (with-gensyms (vec) + `(let ((vec ,v)) + (set! (-> vec x) ,xv) + (set! (-> vec y) ,yv) + (set! (-> vec z) ,zv) + (set! (-> vec w) ,wv))) + ) \ No newline at end of file diff --git a/test/decompiler/reference/engine/ambient/mood-tables_REF.gc b/test/decompiler/reference/engine/ambient/mood-tables_REF.gc index ccefd2ae8a..5761ebe06c 100644 --- a/test/decompiler/reference/engine/ambient/mood-tables_REF.gc +++ b/test/decompiler/reference/engine/ambient/mood-tables_REF.gc @@ -13,12 +13,7 @@ (set! (-> v1-0 direction z) 0.612) (set! (-> v1-0 direction w) 0.0) ) - (let ((v1-1 (-> arg0 dir0 color))) - (set! (-> v1-1 x) 0.8) - (set! (-> v1-1 y) 0.775) - (set! (-> v1-1 z) 0.7) - (set! (-> v1-1 w) 1.0) - ) + (set-vector! (-> arg0 dir0 color) 0.8 0.775 0.7 1.0) (set! (-> arg0 dir0 levels x) arg2) (let ((v1-2 (-> arg0 dir1))) (set! (-> v1-2 direction x) 0.612) @@ -26,12 +21,7 @@ (set! (-> v1-2 direction z) -0.612) (set! (-> v1-2 direction w) 0.0) ) - (let ((v1-3 (-> arg0 dir1 color))) - (set! (-> v1-3 x) 0.8) - (set! (-> v1-3 y) 0.775) - (set! (-> v1-3 z) 0.7) - (set! (-> v1-3 w) 1.0) - ) + (set-vector! (-> arg0 dir1 color) 0.8 0.775 0.7 1.0) (set! (-> arg0 dir1 levels x) arg3) (vector-matrix*! (the-as vector (-> arg0 dir0)) @@ -50,12 +40,7 @@ (set! (-> v1-4 direction z) 0.0) (set! (-> v1-4 direction w) 0.0) ) - (let ((v1-5 (-> arg0 dir2 color))) - (set! (-> v1-5 x) 0.8) - (set! (-> v1-5 y) 0.775) - (set! (-> v1-5 z) 0.7) - (set! (-> v1-5 w) 1.0) - ) + (set-vector! (-> arg0 dir2 color) 0.8 0.775 0.7 1.0) (let ((f0-26 arg4)) (set! (-> arg0 dir2 levels x) f0-26) f0-26 @@ -74,12 +59,7 @@ (set! (-> v1-0 direction z) 0.0) (set! (-> v1-0 direction w) 0.0) ) - (let ((v1-1 (-> s5-0 dir2 color))) - (set! (-> v1-1 x) 0.75) - (set! (-> v1-1 y) 0.375) - (set! (-> v1-1 z) 0.0) - (set! (-> v1-1 w) 1.0) - ) + (set-vector! (-> s5-0 dir2 color) 0.75 0.375 0.0 1.0) ) (make-light-kit (-> arg0 light-group 3) 53703.11 0.9 0.9 0.5) (make-light-kit (-> arg0 light-group 4) 54613.332 0.9 0.9 0.4) @@ -94,18 +74,8 @@ (defun make-misty-light-kit ((arg0 mood-context)) (let ((gp-0 (-> arg0 light-group 1))) (make-light-kit gp-0 24576.0 1.0 0.4 1.0) - (let ((v1-0 (-> gp-0 dir0 color))) - (set! (-> v1-0 x) 0.75) - (set! (-> v1-0 y) 0.3) - (set! (-> v1-0 z) 0.0) - (set! (-> v1-0 w) 1.0) - ) - (let ((v0-1 (-> gp-0 dir2 color))) - (set! (-> v0-1 x) 0.75) - (set! (-> v0-1 y) 0.3) - (set! (-> v0-1 z) 0.0) - (set! (-> v0-1 w) 1.0) - ) + (set-vector! (-> gp-0 dir0 color) 0.75 0.3 0.0 1.0) + (set-vector! (-> gp-0 dir2 color) 0.75 0.3 0.0 1.0) ) (none) ) @@ -120,12 +90,7 @@ (set! (-> a0-1 direction z) 0.0) (set! (-> a0-1 direction w) 1.0) ) - (let ((a0-2 (-> v1-0 dir0 color))) - (set! (-> a0-2 x) 0.375) - (set! (-> a0-2 y) 0.25) - (set! (-> a0-2 z) 0.25) - (set! (-> a0-2 w) 1.0) - ) + (set-vector! (-> v1-0 dir0 color) 0.375 0.25 0.25 1.0) (set! (-> v1-0 dir0 levels x) 1.0) (let ((a0-3 (-> v1-0 dir1))) (set! (-> a0-3 direction x) -0.6119) @@ -133,12 +98,7 @@ (set! (-> a0-3 direction z) -0.6119) (set! (-> a0-3 direction w) 1.0) ) - (let ((a0-4 (-> v1-0 dir1 color))) - (set! (-> a0-4 x) 0.25) - (set! (-> a0-4 y) 0.75) - (set! (-> a0-4 z) 1.0) - (set! (-> a0-4 w) 1.0) - ) + (set-vector! (-> v1-0 dir1 color) 0.25 0.75 1.0 1.0) (set! (-> v1-0 dir1 levels x) 0.666) (let ((a0-5 (-> v1-0 dir2))) (set! (-> a0-5 direction x) 0.9961) @@ -146,12 +106,7 @@ (set! (-> a0-5 direction z) -0.0871) (set! (-> a0-5 direction w) 1.0) ) - (let ((a0-6 (-> v1-0 dir2 color))) - (set! (-> a0-6 x) 0.0) - (set! (-> a0-6 y) 0.25) - (set! (-> a0-6 z) 1.0) - (set! (-> a0-6 w) 1.0) - ) + (set-vector! (-> v1-0 dir2 color) 0.0 0.25 1.0 1.0) (set! (-> v1-0 dir2 levels x) 1.0) ) (let ((v1-2 (-> arg0 light-group 2))) @@ -161,12 +116,7 @@ (set! (-> a0-7 direction z) 0.836) (set! (-> a0-7 direction w) 1.0) ) - (let ((a0-8 (-> v1-2 dir0 color))) - (set! (-> a0-8 x) 0.8) - (set! (-> a0-8 y) 0.8) - (set! (-> a0-8 z) 0.8) - (set! (-> a0-8 w) 1.0) - ) + (set-vector! (-> v1-2 dir0 color) 0.8 0.8 0.8 1.0) (set! (-> v1-2 dir0 levels x) 0.7) (let ((a0-9 (-> v1-2 dir1))) (set! (-> a0-9 direction x) -0.2959) @@ -174,31 +124,16 @@ (set! (-> a0-9 direction z) -0.8133) (set! (-> a0-9 direction w) 1.0) ) - (let ((a0-10 (-> v1-2 dir1 color))) - (set! (-> a0-10 x) 0.8) - (set! (-> a0-10 y) 0.8) - (set! (-> a0-10 z) 0.8) - (set! (-> a0-10 w) 1.0) - ) + (set-vector! (-> v1-2 dir1 color) 0.8 0.8 0.8 1.0) (set! (-> v1-2 dir1 levels x) 0.7) ) (let ((s5-0 (-> arg0 light-group 3))) (make-light-kit s5-0 5461.3335 1.0 0.8 0.2) - (let ((v1-4 (-> s5-0 dir0 color))) - (set! (-> v1-4 x) 0.675) - (set! (-> v1-4 y) 0.45) - (set! (-> v1-4 z) 0.15) - (set! (-> v1-4 w) 1.0) - ) + (set-vector! (-> s5-0 dir0 color) 0.675 0.45 0.15 1.0) ) (let ((s5-1 (-> arg0 light-group 4))) (make-light-kit s5-1 57344.0 1.0 0.8 0.2) - (let ((v1-5 (-> s5-1 dir0 color))) - (set! (-> v1-5 x) 0.675) - (set! (-> v1-5 y) 0.45) - (set! (-> v1-5 z) 0.15) - (set! (-> v1-5 w) 1.0) - ) + (set-vector! (-> s5-1 dir0 color) 0.675 0.45 0.15 1.0) ) (let ((v1-6 (-> arg0 light-group 5))) (let ((a0-13 (-> v1-6 dir0))) @@ -207,28 +142,13 @@ (set! (-> a0-13 direction z) 0.0) (set! (-> a0-13 direction w) 0.0) ) - (let ((a0-14 (-> v1-6 dir0 color))) - (set! (-> a0-14 x) 2.0) - (set! (-> a0-14 y) 1.0) - (set! (-> a0-14 z) 0.0) - (set! (-> a0-14 w) 1.0) - ) + (set-vector! (-> v1-6 dir0 color) 2.0 1.0 0.0 1.0) (set! (-> v1-6 dir1 levels x) 0.0) (set! (-> v1-6 dir2 levels x) 0.0) ) (let ((v1-8 (-> arg0 light-group 6))) - (let ((a0-15 (-> v1-8 dir0 color))) - (set! (-> a0-15 x) 1.0) - (set! (-> a0-15 y) 0.5) - (set! (-> a0-15 z) 0.0) - (set! (-> a0-15 w) 1.0) - ) - (let ((a0-16 (-> v1-8 dir1 color))) - (set! (-> a0-16 x) 0.6) - (set! (-> a0-16 y) 0.58125) - (set! (-> a0-16 z) 0.525) - (set! (-> a0-16 w) 1.0) - ) + (set-vector! (-> v1-8 dir0 color) 1.0 0.5 0.0 1.0) + (set-vector! (-> v1-8 dir1 color) 0.6 0.58125 0.525 1.0) (set! (-> v1-8 dir1 levels x) 0.0) (set! (-> v1-8 dir2 levels x) 0.0) ) @@ -246,12 +166,7 @@ (set! (-> v1-0 direction z) 0.0) (set! (-> v1-0 direction w) 1.0) ) - (let ((v1-1 (-> s5-0 dir0 color))) - (set! (-> v1-1 x) 1.0) - (set! (-> v1-1 y) 0.9) - (set! (-> v1-1 z) 0.0) - (set! (-> v1-1 w) 1.0) - ) + (set-vector! (-> s5-0 dir0 color) 1.0 0.9 0.0 1.0) ) (let ((s5-1 (-> arg0 light-group 2))) (make-light-kit s5-1 0.0 1.0 0.0 0.0) @@ -261,12 +176,7 @@ (set! (-> v1-2 direction z) 0.0) (set! (-> v1-2 direction w) 1.0) ) - (let ((v1-3 (-> s5-1 dir0 color))) - (set! (-> v1-3 x) 1.0) - (set! (-> v1-3 y) 0.9) - (set! (-> v1-3 z) 0.0) - (set! (-> v1-3 w) 1.0) - ) + (set-vector! (-> s5-1 dir0 color) 1.0 0.9 0.0 1.0) ) (let ((s5-2 (-> arg0 light-group 3))) (make-light-kit s5-2 0.0 1.0 0.0 0.0) @@ -276,12 +186,7 @@ (set! (-> v1-4 direction z) 0.0) (set! (-> v1-4 direction w) 1.0) ) - (let ((v1-5 (-> s5-2 dir0 color))) - (set! (-> v1-5 x) 1.0) - (set! (-> v1-5 y) 0.9) - (set! (-> v1-5 z) 0.0) - (set! (-> v1-5 w) 1.0) - ) + (set-vector! (-> s5-2 dir0 color) 1.0 0.9 0.0 1.0) ) (let ((s5-3 (-> arg0 light-group 4))) (make-light-kit s5-3 0.0 1.0 0.0 0.0) @@ -291,12 +196,7 @@ (set! (-> v1-6 direction z) 0.0) (set! (-> v1-6 direction w) 1.0) ) - (let ((v1-7 (-> s5-3 dir0 color))) - (set! (-> v1-7 x) 1.0) - (set! (-> v1-7 y) 0.9) - (set! (-> v1-7 z) 0.0) - (set! (-> v1-7 w) 1.0) - ) + (set-vector! (-> s5-3 dir0 color) 1.0 0.9 0.0 1.0) ) (let ((s5-4 (-> arg0 light-group 5))) (make-light-kit s5-4 0.0 1.0 0.0 0.0) @@ -306,12 +206,7 @@ (set! (-> v1-8 direction z) 0.0) (set! (-> v1-8 direction w) 1.0) ) - (let ((v1-9 (-> s5-4 dir0 color))) - (set! (-> v1-9 x) 1.0) - (set! (-> v1-9 y) 0.9) - (set! (-> v1-9 z) 0.0) - (set! (-> v1-9 w) 1.0) - ) + (set-vector! (-> s5-4 dir0 color) 1.0 0.9 0.0 1.0) ) (let ((gp-1 (-> arg0 light-group 6))) (make-light-kit gp-1 0.0 1.0 0.0 0.0) @@ -321,12 +216,7 @@ (set! (-> v1-10 direction z) 0.0) (set! (-> v1-10 direction w) 1.0) ) - (let ((v0-6 (-> gp-1 dir0 color))) - (set! (-> v0-6 x) 1.0) - (set! (-> v0-6 y) 0.9) - (set! (-> v0-6 z) 0.0) - (set! (-> v0-6 w) 1.0) - ) + (set-vector! (-> gp-1 dir0 color) 1.0 0.9 0.0 1.0) ) (none) ) @@ -341,12 +231,7 @@ (set! (-> a1-0 direction z) 0.2929) (set! (-> a1-0 direction w) 1.0) ) - (let ((a1-1 (-> v1-0 dir0 color))) - (set! (-> a1-1 x) 0.5) - (set! (-> a1-1 y) 1.0) - (set! (-> a1-1 z) 1.0) - (set! (-> a1-1 w) 1.0) - ) + (set-vector! (-> v1-0 dir0 color) 0.5 1.0 1.0 1.0) (set! (-> v1-0 dir0 levels x) 1.0) (let ((a1-2 (-> v1-0 dir2))) (set! (-> a1-2 direction x) 0.0) @@ -354,12 +239,7 @@ (set! (-> a1-2 direction z) 0.0) (set! (-> a1-2 direction w) 1.0) ) - (let ((v1-1 (-> v1-0 dir2 color))) - (set! (-> v1-1 x) 0.625) - (set! (-> v1-1 y) 0.375) - (set! (-> v1-1 z) 0.1) - (set! (-> v1-1 w) 1.0) - ) + (set-vector! (-> v1-0 dir2 color) 0.625 0.375 0.1 1.0) ) (let ((v1-2 (-> arg0 light-group 2))) (let ((a0-1 (-> v1-2 dir0))) @@ -368,12 +248,7 @@ (set! (-> a0-1 direction z) 0.2929) (set! (-> a0-1 direction w) 1.0) ) - (let ((a0-2 (-> v1-2 dir0 color))) - (set! (-> a0-2 x) 0.25) - (set! (-> a0-2 y) 0.5) - (set! (-> a0-2 z) 0.5) - (set! (-> a0-2 w) 1.0) - ) + (set-vector! (-> v1-2 dir0 color) 0.25 0.5 0.5 1.0) (set! (-> v1-2 dir0 levels x) 1.0) (let ((a0-3 (-> v1-2 dir2))) (set! (-> a0-3 direction x) 0.0) @@ -381,12 +256,7 @@ (set! (-> a0-3 direction z) 0.0) (set! (-> a0-3 direction w) 1.0) ) - (let ((v0-0 (-> v1-2 dir2 color))) - (set! (-> v0-0 x) 0.625) - (set! (-> v0-0 y) 0.375) - (set! (-> v0-0 z) 0.1) - (set! (-> v0-0 w) 1.0) - ) + (set-vector! (-> v1-2 dir2 color) 0.625 0.375 0.1 1.0) ) (none) ) diff --git a/test/decompiler/reference/engine/anim/aligner_REF.gc b/test/decompiler/reference/engine/anim/aligner_REF.gc index 0f90cf76b0..d6ba1d44c5 100644 --- a/test/decompiler/reference/engine/anim/aligner_REF.gc +++ b/test/decompiler/reference/engine/anim/aligner_REF.gc @@ -112,11 +112,12 @@ (the-as vector (-> obj transform)) (the-as vector (-> obj transform 1)) ) - (let ((s5-2 (-> obj align scale))) - (set! (-> s5-2 x) (vector-length (the-as vector (-> obj matrix)))) - (set! (-> s5-2 y) (vector-length (-> obj matrix 0 vector 1))) - (set! (-> s5-2 z) (vector-length (-> obj matrix 0 vector 2))) - (set! (-> s5-2 w) 1.0) + (set-vector! + (-> obj align scale) + (vector-length (the-as vector (-> obj matrix))) + (vector-length (-> obj matrix 0 vector 1)) + (vector-length (-> obj matrix 0 vector 2)) + 1.0 ) (vector-! (-> obj delta scale) diff --git a/test/decompiler/reference/engine/camera/camera-h_REF.gc b/test/decompiler/reference/engine/camera/camera-h_REF.gc index 8420b4c816..d5967ae39d 100644 --- a/test/decompiler/reference/engine/camera/camera-h_REF.gc +++ b/test/decompiler/reference/engine/camera/camera-h_REF.gc @@ -276,7 +276,7 @@ (f0-5 (* (-> obj max-partial) (fabs f1-2))) ) (let ((f1-3 (* f1-2 (* (-> obj accel) (-> *display* time-adjust-ratio))))) - (set! (-> obj vel) (+ (-> obj vel) f1-3)) + (+! (-> obj vel) f1-3) ) (let ((f1-6 (fabs (-> obj vel))) (f0-6 (fmin f0-5 (-> obj max-vel))) @@ -287,7 +287,7 @@ ) ) (let ((f0-10 (* (-> obj vel) (-> *display* time-adjust-ratio)))) - (set! (-> obj value) (+ (-> obj value) f0-10)) + (+! (-> obj value) f0-10) ) 0 (none) diff --git a/test/decompiler/reference/engine/camera/math-camera_REF.gc b/test/decompiler/reference/engine/camera/math-camera_REF.gc index 023baf301b..54401693c7 100644 --- a/test/decompiler/reference/engine/camera/math-camera_REF.gc +++ b/test/decompiler/reference/engine/camera/math-camera_REF.gc @@ -241,23 +241,20 @@ (set! (-> sprite-row-0 vector 0 z) 0.0) (set! (-> sprite-row-0 vector 0 w) 0.0) ) - (let ((sprite-row-1 (-> math-cam sprite-2d vector 1))) - (set! (-> sprite-row-1 x) 0.0) - (set! (-> sprite-row-1 y) (- (* (/ persp-yy persp-xx) persp-x))) - (set! (-> sprite-row-1 z) 0.0) - (set! (-> sprite-row-1 w) 0.0) + (set-vector! + (-> math-cam sprite-2d vector 1) + 0.0 + (- (* (/ persp-yy persp-xx) persp-x)) + 0.0 + 0.0 ) - (let ((sprite-row-2 (-> math-cam sprite-2d vector 2))) - (set! (-> sprite-row-2 x) 0.0) - (set! (-> sprite-row-2 y) 0.0) - (set! (-> sprite-row-2 z) (- persp-x)) - (set! (-> sprite-row-2 w) 0.0) - ) - (let ((sprite-row-3 (-> math-cam sprite-2d vector 3))) - (set! (-> sprite-row-3 x) 0.0) - (set! (-> sprite-row-3 y) 0.0) - (set! (-> sprite-row-3 z) (* 500000000.0 persp-x)) - (set! (-> sprite-row-3 w) (* (* 60.0 persp-x) (-> math-cam pfog0))) + (set-vector! (-> math-cam sprite-2d vector 2) 0.0 0.0 (- persp-x) 0.0) + (set-vector! + (-> math-cam sprite-2d vector 3) + 0.0 + 0.0 + (* 500000000.0 persp-x) + (* (* 60.0 persp-x) (-> math-cam pfog0)) ) ) (set! (-> math-cam sprite-2d-hvdf quad) (-> math-cam hvdf-off quad)) @@ -624,12 +621,7 @@ (let ((s2-0 (new 'stack 'vector4s-3))) (matrix*! s5-0 arg0 (-> *math-camera* camera-temp)) (matrix-3x3-inverse-transpose! gp-0 arg0) - (let ((v1-3 s3-0)) - (set! (-> v1-3 x) 0.4) - (set! (-> v1-3 y) 0.4) - (set! (-> v1-3 z) 0.4) - (set! (-> v1-3 w) 1.0) - ) + (set-vector! s3-0 0.4 0.4 0.4 1.0) (let ((v1-4 (-> s4-0 data))) (set! (-> v1-4 0) 1.0) (set! (-> v1-4 1) 1.0) diff --git a/test/decompiler/reference/engine/collide/collide-frag_REF.gc b/test/decompiler/reference/engine/collide/collide-frag_REF.gc index 12cdb3891b..c7a281be76 100644 --- a/test/decompiler/reference/engine/collide/collide-frag_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-frag_REF.gc @@ -77,39 +77,21 @@ (s4-0 (-> obj mesh)) ) (set! (-> arg0 data s5-0 name) (symbol->string 'collide-fragment)) - (set! (-> arg0 data s5-0 count) (+ (-> arg0 data s5-0 count) 1)) + (+! (-> arg0 data s5-0 count) 1) (let ((v1-11 (+ (asize-of obj) (asize-of s4-0)))) - (set! (-> arg0 data s5-0 used) (+ (-> arg0 data s5-0 used) v1-11)) - (set! - (-> arg0 data s5-0 total) - (+ (-> arg0 data s5-0 total) (logand -16 (+ v1-11 15))) - ) + (+! (-> arg0 data s5-0 used) v1-11) + (+! (-> arg0 data s5-0 total) (logand -16 (+ v1-11 15))) ) (set! (-> arg0 data (+ s5-0 1) name) "collision-poly") - (set! - (-> arg0 data (+ s5-0 1) count) - (+ (-> arg0 data (+ s5-0 1) count) (the-as int (-> s4-0 poly-count))) - ) + (+! (-> arg0 data (+ s5-0 1) count) (the-as int (-> s4-0 poly-count))) (let ((v1-22 (+ (-> s4-0 strip-data-len) (-> s4-0 poly-count)))) - (set! - (-> arg0 data (+ s5-0 1) used) - (+ (-> arg0 data (+ s5-0 1) used) (the-as int v1-22)) - ) - (set! - (-> arg0 data (+ s5-0 1) total) - (+ (-> arg0 data (+ s5-0 1) total) (the-as int v1-22)) - ) + (+! (-> arg0 data (+ s5-0 1) used) (the-as int v1-22)) + (+! (-> arg0 data (+ s5-0 1) total) (the-as int v1-22)) ) (set! (-> arg0 data (+ s5-0 2) name) "collision-vertex") - (set! - (-> arg0 data (+ s5-0 2) count) - (+ (-> arg0 data (+ s5-0 2) count) (the-as int (-> s4-0 vertex-count))) - ) + (+! (-> arg0 data (+ s5-0 2) count) (the-as int (-> s4-0 vertex-count))) (let ((v1-31 (* (-> s4-0 vertex-data-qwc) 16))) - (set! - (-> arg0 data (+ s5-0 2) used) - (+ (-> arg0 data (+ s5-0 2) used) (the-as int v1-31)) - ) + (+! (-> arg0 data (+ s5-0 2) used) (the-as int v1-31)) (let ((v0-2 (+ (-> arg0 data (+ s5-0 2) total) (the-as int v1-31)))) (set! (-> arg0 data (+ s5-0 2) total) v0-2) (the-as collide-fragment v0-2) @@ -195,13 +177,10 @@ ) (set! (-> arg0 length) (max 1 (-> arg0 length))) (set! (-> arg0 data 0 name) (symbol->string 'drawable-group)) - (set! (-> arg0 data 0 count) (+ (-> arg0 data 0 count) 1)) + (+! (-> arg0 data 0 count) 1) (let ((v1-7 32)) - (set! (-> arg0 data 0 used) (+ (-> arg0 data 0 used) v1-7)) - (set! - (-> arg0 data 0 total) - (+ (-> arg0 data 0 total) (logand -16 (+ v1-7 15))) - ) + (+! (-> arg0 data 0 used) v1-7) + (+! (-> arg0 data 0 total) (logand -16 (+ v1-7 15))) ) (dotimes (s3-0 (-> obj length)) (mem-usage (-> obj data s3-0) arg0 arg1) diff --git a/test/decompiler/reference/engine/data/res_REF.gc b/test/decompiler/reference/engine/data/res_REF.gc index 013febf6a1..e94dd06198 100644 --- a/test/decompiler/reference/engine/data/res_REF.gc +++ b/test/decompiler/reference/engine/data/res_REF.gc @@ -898,7 +898,7 @@ ) (else (set! (-> obj tag (-> obj length)) s4-1) - (set! (-> obj length) (+ (-> obj length) 1)) + (+! (-> obj length) 1) (sort! obj) ) ) @@ -1040,19 +1040,10 @@ ) (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) (set! (-> block data mem-use-id name) mem-use-name) - (set! - (-> block data mem-use-id count) - (+ (-> block data mem-use-id count) 1) - ) + (+! (-> block data mem-use-id count) 1) (let ((obj-size (asize-of obj))) - (set! - (-> block data mem-use-id used) - (+ (-> block data mem-use-id used) obj-size) - ) - (set! - (-> block data mem-use-id total) - (+ (-> block data mem-use-id total) (logand -16 (+ obj-size 15))) - ) + (+! (-> block data mem-use-id used) obj-size) + (+! (-> block data mem-use-id total) (logand -16 (+ obj-size 15))) ) (dotimes (tag-idx (-> obj length)) (when (zero? (-> obj tag tag-idx inlined?)) @@ -1077,19 +1068,10 @@ ((string) (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) (set! (-> block data mem-use-id name) mem-use-name) - (set! - (-> block data mem-use-id count) - (+ (-> block data mem-use-id count) 1) - ) + (+! (-> block data mem-use-id count) 1) (let ((v1-47 (asize-of tag-data))) - (set! - (-> block data mem-use-id used) - (+ (-> block data mem-use-id used) v1-47) - ) - (set! - (-> block data mem-use-id total) - (+ (-> block data mem-use-id total) (logand -16 (+ v1-47 15))) - ) + (+! (-> block data mem-use-id used) v1-47) + (+! (-> block data mem-use-id total) (logand -16 (+ v1-47 15))) ) ) ((nav-mesh collide-mesh) @@ -1098,19 +1080,10 @@ ((array) (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) (set! (-> block data mem-use-id name) mem-use-name) - (set! - (-> block data mem-use-id count) - (+ (-> block data mem-use-id count) 1) - ) + (+! (-> block data mem-use-id count) 1) (let ((v1-63 (asize-of (the-as (array object) tag-data)))) - (set! - (-> block data mem-use-id used) - (+ (-> block data mem-use-id used) v1-63) - ) - (set! - (-> block data mem-use-id total) - (+ (-> block data mem-use-id total) (logand -16 (+ v1-63 15))) - ) + (+! (-> block data mem-use-id used) v1-63) + (+! (-> block data mem-use-id total) (logand -16 (+ v1-63 15))) ) (set! sv-16 0) (while (< sv-16 (-> (the-as array tag-data) length)) @@ -1123,19 +1096,10 @@ (else (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) (set! (-> block data mem-use-id name) mem-use-name) - (set! - (-> block data mem-use-id count) - (+ (-> block data mem-use-id count) 1) - ) + (+! (-> block data mem-use-id count) 1) (let ((v1-88 (asize-of tag-data))) - (set! - (-> block data mem-use-id used) - (+ (-> block data mem-use-id used) v1-88) - ) - (set! - (-> block data mem-use-id total) - (+ (-> block data mem-use-id total) (logand -16 (+ v1-88 15))) - ) + (+! (-> block data mem-use-id used) v1-88) + (+! (-> block data mem-use-id total) (logand -16 (+ v1-88 15))) ) ) ) diff --git a/test/decompiler/reference/engine/debug/debug-sphere_REF.gc b/test/decompiler/reference/engine/debug/debug-sphere_REF.gc index af8c199c63..5e8f91b99d 100644 --- a/test/decompiler/reference/engine/debug/debug-sphere_REF.gc +++ b/test/decompiler/reference/engine/debug/debug-sphere_REF.gc @@ -26,12 +26,7 @@ (f30-0 1.0) (s4-0 0) ) - (let ((v1-0 s5-0)) - (set! (-> v1-0 x) 0.0) - (set! (-> v1-0 y) 0.0) - (set! (-> v1-0 z) 0.0) - (set! (-> v1-0 w) 1.0) - ) + (set-vector! s5-0 0.0 0.0 0.0 1.0) (dotimes (s3-0 10) (let ((f28-0 (* f30-0 (sin (* 3276.8 (the float s3-0))))) (f26-0 (* f30-0 (sin (* 3276.8 (the float (+ s3-0 1)))))) diff --git a/test/decompiler/reference/engine/debug/menu_REF.gc b/test/decompiler/reference/engine/debug/menu_REF.gc index 0f21cc7dcf..bce6ed296c 100644 --- a/test/decompiler/reference/engine/debug/menu_REF.gc +++ b/test/decompiler/reference/engine/debug/menu_REF.gc @@ -1090,17 +1090,11 @@ ) (set! (-> v1-2 color) (cond ((> (-> arg0 hilite-timer) 0) - (set! - (-> arg0 hilite-timer) - (+ (-> arg0 hilite-timer) -1) - ) + (+! (-> arg0 hilite-timer) -1) 10 ) ((< (-> arg0 hilite-timer) 0) - (set! - (-> arg0 hilite-timer) - (+ (-> arg0 hilite-timer) 1) - ) + (+! (-> arg0 hilite-timer) 1) 14 ) ((nonzero? arg3) @@ -1200,7 +1194,7 @@ debug-menu-item-render ((arg0 debug-menu-item) (arg1 int) (arg2 int) (arg3 int) (arg4 symbol)) (when (> (-> arg0 refresh-delay) 0) - (set! (-> arg0 refresh-ctr) (+ (-> arg0 refresh-ctr) -1)) + (+! (-> arg0 refresh-ctr) -1) (when (<= (-> arg0 refresh-ctr) 0) (set! (-> arg0 refresh-ctr) (-> arg0 refresh-delay)) (debug-menu-item-send-msg arg0 3) @@ -1506,7 +1500,7 @@ (defun debug-menu-context-close-submenu ((arg0 debug-menu-context)) (debug-menu-context-send-msg arg0 2 3) (if (< 1 (-> arg0 sel-length)) - (set! (-> arg0 sel-length) (+ (-> arg0 sel-length) -1)) + (+! (-> arg0 sel-length) -1) ) arg0 ) @@ -1672,7 +1666,7 @@ (cond ((<= (-> arg0 inc-delay-ctr) 0) (if (> (-> arg0 inc-delay) 0) - (set! (-> arg0 inc-delay) (+ (-> arg0 inc-delay) -1)) + (+! (-> arg0 inc-delay) -1) ) (when (zero? (-> arg0 inc-delay)) (cond @@ -1695,7 +1689,7 @@ ) ) (else - (set! (-> arg0 step-delay-ctr) (+ (-> arg0 step-delay-ctr) -1)) + (+! (-> arg0 step-delay-ctr) -1) ) ) ) @@ -1770,7 +1764,7 @@ ) ) (else - (set! (-> arg0 inc-delay-ctr) (+ (-> arg0 inc-delay-ctr) -1)) + (+! (-> arg0 inc-delay-ctr) -1) ) ) ) diff --git a/test/decompiler/reference/engine/debug/stats-h_REF.gc b/test/decompiler/reference/engine/debug/stats-h_REF.gc index acc3b408e0..2914affca2 100644 --- a/test/decompiler/reference/engine/debug/stats-h_REF.gc +++ b/test/decompiler/reference/engine/debug/stats-h_REF.gc @@ -126,9 +126,9 @@ perf-stat ((obj perf-stat) (arg0 uint) (arg1 uint) (arg2 uint)) (when (nonzero? (-> obj ctrl)) - (set! (-> obj to-vu0-waits) (+ (-> obj to-vu0-waits) arg0)) - (set! (-> obj to-spr-waits) (+ (-> obj to-spr-waits) arg1)) - (set! (-> obj from-spr-waits) (+ (-> obj from-spr-waits) arg2)) + (+! (-> obj to-vu0-waits) arg0) + (+! (-> obj to-spr-waits) arg1) + (+! (-> obj from-spr-waits) arg2) ) 0 (none) diff --git a/test/decompiler/reference/engine/engine/connect_REF.gc b/test/decompiler/reference/engine/engine/connect_REF.gc index fdb021f4ba..3693568ff6 100644 --- a/test/decompiler/reference/engine/engine/connect_REF.gc +++ b/test/decompiler/reference/engine/engine/connect_REF.gc @@ -425,7 +425,7 @@ ) (set! (-> con prev1) (-> proc connection-list)) (set! (-> proc connection-list next1) con) - (set! (-> obj length) (+ (-> obj length) 1)) + (+! (-> obj length) 1) con ) ) @@ -444,7 +444,7 @@ (set! (-> obj next0 prev0) obj) (set! (-> obj prev0) (-> v1-1 dead-list)) (set! (-> v1-1 dead-list next0) obj) - (set! (-> v1-1 length) (+ (-> v1-1 length) -1)) + (+! (-> v1-1 length) -1) ) obj ) diff --git a/test/decompiler/reference/engine/game/task/hint-control_REF.gc b/test/decompiler/reference/engine/game/task/hint-control_REF.gc index 20ed15f73f..4b50de8235 100644 --- a/test/decompiler/reference/engine/game/task/hint-control_REF.gc +++ b/test/decompiler/reference/engine/game/task/hint-control_REF.gc @@ -406,7 +406,7 @@ (= (-> gp-1 num-attempts-before-playing) 1) (< (the-as int a0-24) 30) ) - (set! (-> gp-1 start-time) (+ (-> gp-1 start-time) a0-24)) + (+! (-> gp-1 start-time) a0-24) ) (cond ((and diff --git a/test/decompiler/reference/engine/geometry/geometry_REF.gc b/test/decompiler/reference/engine/geometry/geometry_REF.gc index c7712f0bac..e961719902 100644 --- a/test/decompiler/reference/engine/geometry/geometry_REF.gc +++ b/test/decompiler/reference/engine/geometry/geometry_REF.gc @@ -1001,18 +1001,8 @@ (s5-0 (new-stack-vector0)) (gp-0 (new-stack-vector0)) ) - (let ((v1-3 s4-0)) - (set! (-> v1-3 x) 0.0) - (set! (-> v1-3 y) 0.0) - (set! (-> v1-3 z) 0.0) - (set! (-> v1-3 w) 1.0) - ) - (let ((v1-4 a1-2)) - (set! (-> v1-4 x) 100.0) - (set! (-> v1-4 y) 0.0) - (set! (-> v1-4 z) 0.0) - (set! (-> v1-4 w) 10000.0) - ) + (set-vector! s4-0 0.0 0.0 0.0 1.0) + (set-vector! a1-2 100.0 0.0 0.0 10000.0) (let ((a2-1 (circle-circle-xz-intersect s4-0 a1-2 s5-0 gp-0))) (format #t "res = ~d~%" a2-1) ) diff --git a/test/decompiler/reference/engine/geometry/vol-h_REF.gc b/test/decompiler/reference/engine/geometry/vol-h_REF.gc index 99b83cdc3b..50bdc5584c 100644 --- a/test/decompiler/reference/engine/geometry/vol-h_REF.gc +++ b/test/decompiler/reference/engine/geometry/vol-h_REF.gc @@ -128,10 +128,7 @@ (set! (-> a0-8 num-planes) (the-as int (-> s2-0 elt-count))) (set! (-> a0-8 plane) (the-as uint v1-12)) ) - (set! - (-> (the-as vol-control gp-0) pos-vol-count) - (+ (-> (the-as vol-control gp-0) pos-vol-count) 1) - ) + (+! (-> (the-as vol-control gp-0) pos-vol-count) 1) (+! s3-0 1) (set! s2-0 (-> s5-1 tag s3-0)) ) @@ -168,10 +165,7 @@ (set! (-> a0-19 num-planes) (the-as int (-> s2-1 elt-count))) (set! (-> a0-19 plane) (the-as uint v1-31)) ) - (set! - (-> (the-as vol-control gp-0) neg-vol-count) - (+ (-> (the-as vol-control gp-0) neg-vol-count) 1) - ) + (+! (-> (the-as vol-control gp-0) neg-vol-count) 1) (+! s3-1 1) (set! s2-1 (-> s5-2 tag s3-1)) ) diff --git a/test/decompiler/reference/engine/gfx/hw/display_REF.gc b/test/decompiler/reference/engine/gfx/hw/display_REF.gc index 0c095fd9ac..36bee4dc29 100644 --- a/test/decompiler/reference/engine/gfx/hw/display_REF.gc +++ b/test/decompiler/reference/engine/gfx/hw/display_REF.gc @@ -281,7 +281,7 @@ (defmethod add-frame profile-bar ((obj profile-bar) (name symbol) (color rgba)) (when *debug-segment* (let ((new-frame (-> obj data (-> obj profile-frame-count)))) - (set! (-> obj profile-frame-count) (+ (-> obj profile-frame-count) 1)) + (+! (-> obj profile-frame-count) 1) (set! (-> new-frame name) name) (set! (-> new-frame time-stamp) @@ -306,7 +306,7 @@ profile-bar ((obj profile-bar) (name symbol) (color rgba)) (let ((new-frame (-> obj data (-> obj profile-frame-count)))) - (set! (-> obj profile-frame-count) (+ (-> obj profile-frame-count) 1)) + (+! (-> obj profile-frame-count) 1) (set! (-> new-frame name) name) (set! (-> new-frame time-stamp) (the-as uint *ticks-per-frame*)) (set! (-> new-frame color) color) diff --git a/test/decompiler/reference/engine/gfx/hw/gs_REF.gc b/test/decompiler/reference/engine/gfx/hw/gs_REF.gc index 484fe36639..d9e6fb4988 100644 --- a/test/decompiler/reference/engine/gfx/hw/gs_REF.gc +++ b/test/decompiler/reference/engine/gfx/hw/gs_REF.gc @@ -944,7 +944,7 @@ ) ) (set! (-> (&-> packet args (-> packet reg-count)) 0) (the-as uint reg-val)) - (set! (-> packet reg-count) (+ (-> packet reg-count) 1)) + (+! (-> packet reg-count) 1) (none) ) diff --git a/test/decompiler/reference/engine/gfx/lights_REF.gc b/test/decompiler/reference/engine/gfx/lights_REF.gc index 33018a8ae9..f4df4966f6 100644 --- a/test/decompiler/reference/engine/gfx/lights_REF.gc +++ b/test/decompiler/reference/engine/gfx/lights_REF.gc @@ -49,47 +49,12 @@ ;; definition for function vu-lights-default! (defun vu-lights-default! ((arg0 vu-lights)) - (let ((v1-0 (-> arg0 ambient))) - (set! (-> v1-0 x) 0.3) - (set! (-> v1-0 y) 0.3) - (set! (-> v1-0 z) 0.3) - (set! (-> v1-0 w) 1.0) - ) - (let ((v1-1 (-> arg0 color))) - (set! (-> v1-1 0 x) 1.0) - (set! (-> v1-1 0 y) 1.0) - (set! (-> v1-1 0 z) 1.0) - (set! (-> v1-1 0 w) 1.0) - ) - (let ((v1-2 (-> arg0 color 1))) - (set! (-> v1-2 x) 0.2) - (set! (-> v1-2 y) 0.2) - (set! (-> v1-2 z) 0.2) - (set! (-> v1-2 w) 1.0) - ) - (let ((v1-3 (-> arg0 color 2))) - (set! (-> v1-3 x) 0.0) - (set! (-> v1-3 y) 0.0) - (set! (-> v1-3 z) 0.0) - (set! (-> v1-3 w) 1.0) - ) - (let ((v1-4 (-> arg0 direction))) - (set! (-> v1-4 0 x) 1.0) - (set! (-> v1-4 0 y) 0.0) - (set! (-> v1-4 0 z) 0.0) - (set! (-> v1-4 0 w) 1.0) - ) - (let ((v1-5 (-> arg0 direction 1))) - (set! (-> v1-5 x) 0.0) - (set! (-> v1-5 y) 1.0) - (set! (-> v1-5 z) 0.0) - (set! (-> v1-5 w) 1.0) - ) - (let ((v1-6 (-> arg0 direction 2))) - (set! (-> v1-6 x) 0.0) - (set! (-> v1-6 y) 0.0) - (set! (-> v1-6 z) 1.0) - (set! (-> v1-6 w) 1.0) - ) + (set-vector! (-> arg0 ambient) 0.3 0.3 0.3 1.0) + (set-vector! (-> arg0 color 0) 1.0 1.0 1.0 1.0) + (set-vector! (-> arg0 color 1) 0.2 0.2 0.2 1.0) + (set-vector! (-> arg0 color 2) 0.0 0.0 0.0 1.0) + (set-vector! (-> arg0 direction 0) 1.0 0.0 0.0 1.0) + (set-vector! (-> arg0 direction 1) 0.0 1.0 0.0 1.0) + (set-vector! (-> arg0 direction 2) 0.0 0.0 1.0 1.0) arg0 ) diff --git a/test/decompiler/reference/engine/gfx/mood-h_REF.gc b/test/decompiler/reference/engine/gfx/mood-h_REF.gc index 79605a47be..024d16ed30 100644 --- a/test/decompiler/reference/engine/gfx/mood-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/mood-h_REF.gc @@ -205,54 +205,14 @@ (object-new allocation type-to-make (the-as int (-> type-to-make size))) ) ) - (let ((v1-2 (-> v0-0 times))) - (set! (-> v1-2 0 x) 1.0) - (set! (-> v1-2 0 y) 1.0) - (set! (-> v1-2 0 z) 1.0) - (set! (-> v1-2 0 w) 0.0) - ) - (let ((v1-3 (-> v0-0 times 1))) - (set! (-> v1-3 x) 1.0) - (set! (-> v1-3 y) 1.0) - (set! (-> v1-3 z) 1.0) - (set! (-> v1-3 w) 0.0) - ) - (let ((v1-4 (-> v0-0 times 2))) - (set! (-> v1-4 x) 1.0) - (set! (-> v1-4 y) 1.0) - (set! (-> v1-4 z) 1.0) - (set! (-> v1-4 w) 0.0) - ) - (let ((v1-5 (-> v0-0 times 3))) - (set! (-> v1-5 x) 1.0) - (set! (-> v1-5 y) 1.0) - (set! (-> v1-5 z) 1.0) - (set! (-> v1-5 w) 0.0) - ) - (let ((v1-6 (-> v0-0 times 4))) - (set! (-> v1-6 x) 1.0) - (set! (-> v1-6 y) 1.0) - (set! (-> v1-6 z) 1.0) - (set! (-> v1-6 w) 0.0) - ) - (let ((v1-7 (-> v0-0 times 5))) - (set! (-> v1-7 x) 1.0) - (set! (-> v1-7 y) 1.0) - (set! (-> v1-7 z) 1.0) - (set! (-> v1-7 w) 0.0) - ) - (let ((v1-8 (-> v0-0 times 6))) - (set! (-> v1-8 x) 1.0) - (set! (-> v1-8 y) 1.0) - (set! (-> v1-8 z) 1.0) - (set! (-> v1-8 w) 0.0) - ) - (let ((v1-9 (-> v0-0 times 7))) - (set! (-> v1-9 x) 1.0) - (set! (-> v1-9 y) 1.0) - (set! (-> v1-9 z) 1.0) - (set! (-> v1-9 w) 0.0) - ) + (set-vector! (-> v0-0 times 0) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 1) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 2) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 3) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 4) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 5) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 6) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 7) 1.0 1.0 1.0 0.0) v0-0 ) ) diff --git a/test/decompiler/reference/engine/gfx/ripple_REF.gc b/test/decompiler/reference/engine/gfx/ripple_REF.gc index 131f285846..99e4b2e3d2 100644 --- a/test/decompiler/reference/engine/gfx/ripple_REF.gc +++ b/test/decompiler/reference/engine/gfx/ripple_REF.gc @@ -57,7 +57,7 @@ (when (zero? a3-0) (set! (-> a2-1 v1-1 effect) arg1) (set! (-> a2-1 v1-1 waveform) arg0) - (set! (-> *ripple-globals* count) (+ (-> *ripple-globals* count) 1)) + (+! (-> *ripple-globals* count) 1) ) ) ) @@ -76,7 +76,7 @@ (when (!= f0-1 0.0) (dotimes (v1-4 (-> arg0 count)) (let ((a1-4 (-> arg0 wave v1-4))) - (set! (-> a1-4 offs) (+ (-> a1-4 offs) (* f0-1 (-> a1-4 delta)))) + (+! (-> a1-4 offs) (* f0-1 (-> a1-4 delta))) (set! (-> a1-4 offs) (the float (logand (the int (-> a1-4 offs)) #xffff))) ) ) diff --git a/test/decompiler/reference/engine/gfx/shrub/shrub-work_REF.gc b/test/decompiler/reference/engine/gfx/shrub/shrub-work_REF.gc index 18926272f7..73dc04868c 100644 --- a/test/decompiler/reference/engine/gfx/shrub/shrub-work_REF.gc +++ b/test/decompiler/reference/engine/gfx/shrub/shrub-work_REF.gc @@ -660,7 +660,7 @@ (set! (-> v1-1 vector 2 quad) t2-4) (set! (-> v1-1 vector 3 quad) t3-1) ) - (set! (-> arg0 base) (&+ (-> arg0 base) 64)) + (&+! (-> arg0 base) 64) (let* ((v1-4 arg0) (t0-4 (the-as object (-> v1-4 base))) ) @@ -787,7 +787,3 @@ ) arg0 ) - - - - diff --git a/test/decompiler/reference/engine/gfx/sparticle/sparticle-h_REF.gc b/test/decompiler/reference/engine/gfx/sparticle/sparticle-h_REF.gc index 54e30dfcfa..26d6d05f11 100644 --- a/test/decompiler/reference/engine/gfx/sparticle/sparticle-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/sparticle/sparticle-h_REF.gc @@ -5,11 +5,12 @@ (define *sp-frame-time* (new 'global 'vector)) ;; failed to figure out what this is: -(let ((v1-1 *sp-frame-time*)) - (set! (-> v1-1 x) 0.00000000000000000000000000000000000001175495) - (set! (-> v1-1 y) 5.0) - (set! (-> v1-1 z) 1.0) - (set! (-> v1-1 w) 1.0) +(set-vector! + *sp-frame-time* + 0.00000000000000000000000000000000000001175495 + 5.0 + 1.0 + 1.0 ) ;; definition for symbol *sp-60-hz*, type symbol diff --git a/test/decompiler/reference/engine/gfx/texture_REF.gc b/test/decompiler/reference/engine/gfx/texture_REF.gc index d452b79a17..9be03dab00 100644 --- a/test/decompiler/reference/engine/gfx/texture_REF.gc +++ b/test/decompiler/reference/engine/gfx/texture_REF.gc @@ -33,18 +33,15 @@ ((obj texture-page) (arg0 memory-usage-block) (arg1 int)) (set! (-> arg0 length) (max 80 (-> arg0 length))) (set! (-> arg0 data 79 name) "texture") - (set! (-> arg0 data 79 count) (+ (-> arg0 data 79 count) (-> obj length))) + (+! (-> arg0 data 79 count) (-> obj length)) (let ((v1-7 (- (asize-of obj) (the-as int (* (-> obj size) 4))))) (dotimes (a0-6 (-> obj length)) (if (-> obj data a0-6) (+! v1-7 64) ) ) - (set! (-> arg0 data 79 used) (+ (-> arg0 data 79 used) v1-7)) - (set! - (-> arg0 data 79 total) - (+ (-> arg0 data 79 total) (logand -16 (+ v1-7 15))) - ) + (+! (-> arg0 data 79 used) v1-7) + (+! (-> arg0 data 79 total) (logand -16 (+ v1-7 15))) ) obj ) @@ -693,7 +690,7 @@ texture-pool ((obj texture-pool) (word-count int)) (let ((v0-0 (-> obj cur))) - (set! (-> obj cur) (+ (-> obj cur) word-count)) + (+! (-> obj cur) word-count) v0-0 ) ) @@ -1701,17 +1698,14 @@ (when tfrag-page (set! (-> level upload-size 0) 0) (if (< distance 81920.0) - (set! + (+! (-> level upload-size 0) - (+ - (-> level upload-size 0) - (upload-vram-pages - obj - (-> obj segment-near) - tfrag-page - 2 - (the-as bucket-id tfrag-bucket) - ) + (upload-vram-pages + obj + (-> obj segment-near) + tfrag-page + 2 + (the-as bucket-id tfrag-bucket) ) ) ) @@ -1719,32 +1713,26 @@ ((= distance 4095996000.0) ) ((< 102400.0 distance) - (set! + (+! (-> level upload-size 0) - (+ - (-> level upload-size 0) - (upload-vram-pages - obj - (-> obj segment-common) - tfrag-page - 0 - (the-as bucket-id tfrag-bucket) - ) + (upload-vram-pages + obj + (-> obj segment-common) + tfrag-page + 0 + (the-as bucket-id tfrag-bucket) ) ) ) (else - (set! + (+! (-> level upload-size 0) - (+ - (-> level upload-size 0) - (upload-vram-pages - obj - (-> obj segment-common) - tfrag-page - -2 - (the-as bucket-id tfrag-bucket) - ) + (upload-vram-pages + obj + (-> obj segment-common) + tfrag-page + -2 + (the-as bucket-id tfrag-bucket) ) ) ) @@ -2911,10 +2899,7 @@ (-> v1-2 loaded-texture-page (-> v1-2 loaded-texture-page-count)) obj ) - (set! - (-> v1-2 loaded-texture-page-count) - (+ (-> v1-2 loaded-texture-page-count) 1) - ) + (+! (-> v1-2 loaded-texture-page-count) 1) ) ) (set! (-> obj segment 1 dest) (-> obj segment 0 size)) diff --git a/test/decompiler/reference/engine/gfx/tie/prototype_REF.gc b/test/decompiler/reference/engine/gfx/tie/prototype_REF.gc index ce162db556..8b56f3443c 100644 --- a/test/decompiler/reference/engine/gfx/tie/prototype_REF.gc +++ b/test/decompiler/reference/engine/gfx/tie/prototype_REF.gc @@ -57,13 +57,10 @@ ((obj prototype-array-tie) (arg0 memory-usage-block) (arg1 int)) (set! (-> arg0 length) (max 1 (-> arg0 length))) (set! (-> arg0 data 0 name) (symbol->string 'drawable-group)) - (set! (-> arg0 data 0 count) (+ (-> arg0 data 0 count) 1)) + (+! (-> arg0 data 0 count) 1) (let ((v1-8 (asize-of obj))) - (set! (-> arg0 data 0 used) (+ (-> arg0 data 0 used) v1-8)) - (set! - (-> arg0 data 0 total) - (+ (-> arg0 data 0 total) (logand -16 (+ v1-8 15))) - ) + (+! (-> arg0 data 0 used) v1-8) + (+! (-> arg0 data 0 total) (logand -16 (+ v1-8 15))) ) (dotimes (s3-0 (-> obj length)) (mem-usage (-> obj array-data s3-0) arg0 arg1) @@ -85,25 +82,19 @@ ) (set! (-> arg0 length) (max 81 (-> arg0 length))) (set! (-> arg0 data 80 name) "string") - (set! (-> arg0 data 80 count) (+ (-> arg0 data 80 count) 1)) + (+! (-> arg0 data 80 count) 1) (let ((v1-13 ((method-of-type string asize-of) (the-as string (-> obj name))))) - (set! (-> arg0 data 80 used) (+ (-> arg0 data 80 used) v1-13)) - (set! - (-> arg0 data 80 total) - (+ (-> arg0 data 80 total) (logand -16 (+ v1-13 15))) - ) + (+! (-> arg0 data 80 used) v1-13) + (+! (-> arg0 data 80 total) (logand -16 (+ v1-13 15))) ) (when (nonzero? (-> obj tie-colors)) (set! (-> arg0 length) (max 17 (-> arg0 length))) (set! (-> arg0 data 16 name) "tie-pal") - (set! (-> arg0 data 16 count) (+ (-> arg0 data 16 count) 1)) + (+! (-> arg0 data 16 count) 1) (let ((v1-25 (asize-of (-> obj tie-colors)))) - (set! (-> arg0 data 16 used) (+ (-> arg0 data 16 used) v1-25)) - (set! - (-> arg0 data 16 total) - (+ (-> arg0 data 16 total) (logand -16 (+ v1-25 15))) - ) + (+! (-> arg0 data 16 used) v1-25) + (+! (-> arg0 data 16 total) (logand -16 (+ v1-25 15))) ) ) (if (nonzero? (-> obj collide-frag)) @@ -119,13 +110,10 @@ ((obj prototype-inline-array-shrub) (arg0 memory-usage-block) (arg1 int)) (set! (-> arg0 length) (max 1 (-> arg0 length))) (set! (-> arg0 data 0 name) (symbol->string 'drawable-group)) - (set! (-> arg0 data 0 count) (+ (-> arg0 data 0 count) 1)) + (+! (-> arg0 data 0 count) 1) (let ((v1-8 (asize-of obj))) - (set! (-> arg0 data 0 used) (+ (-> arg0 data 0 used) v1-8)) - (set! - (-> arg0 data 0 total) - (+ (-> arg0 data 0 total) (logand -16 (+ v1-8 15))) - ) + (+! (-> arg0 data 0 used) v1-8) + (+! (-> arg0 data 0 total) (logand -16 (+ v1-8 15))) ) (dotimes (s3-0 (-> obj length)) (mem-usage (-> obj data s3-0) arg0 arg1) @@ -140,13 +128,10 @@ ((obj prototype-bucket-shrub) (arg0 memory-usage-block) (arg1 int)) (set! (-> arg0 length) (max 25 (-> arg0 length))) (set! (-> arg0 data 24 name) "prototype-bucket-shrub") - (set! (-> arg0 data 24 count) (+ (-> arg0 data 24 count) 1)) + (+! (-> arg0 data 24 count) 1) (let ((v1-5 112)) - (set! (-> arg0 data 24 used) (+ (-> arg0 data 24 used) v1-5)) - (set! - (-> arg0 data 24 total) - (+ (-> arg0 data 24 total) (logand -16 (+ v1-5 15))) - ) + (+! (-> arg0 data 24 used) v1-5) + (+! (-> arg0 data 24 total) (logand -16 (+ v1-5 15))) ) (dotimes (s3-0 4) (let ((a0-5 (-> obj geometry s3-0))) @@ -157,14 +142,11 @@ ) (set! (-> arg0 length) (max 81 (-> arg0 length))) (set! (-> arg0 data 80 name) "string") - (set! (-> arg0 data 80 count) (+ (-> arg0 data 80 count) 1)) + (+! (-> arg0 data 80 count) 1) (let ((v1-22 ((method-of-type string asize-of) (the-as string (-> obj name))))) - (set! (-> arg0 data 80 used) (+ (-> arg0 data 80 used) v1-22)) - (set! - (-> arg0 data 80 total) - (+ (-> arg0 data 80 total) (logand -16 (+ v1-22 15))) - ) + (+! (-> arg0 data 80 used) v1-22) + (+! (-> arg0 data 80 total) (logand -16 (+ v1-22 15))) ) obj ) diff --git a/test/decompiler/reference/engine/gfx/wind_REF.gc b/test/decompiler/reference/engine/gfx/wind_REF.gc index aa18c88467..ee0a149cf2 100644 --- a/test/decompiler/reference/engine/gfx/wind_REF.gc +++ b/test/decompiler/reference/engine/gfx/wind_REF.gc @@ -14,7 +14,7 @@ (set! (-> arg0 wind-normal x) (cos f30-1)) (set! (-> arg0 wind-normal z) (sin f30-1)) ) - (set! (-> arg0 wind-time) (+ (-> arg0 wind-time) 1)) + (+! (-> arg0 wind-time) 1) (let* ((s4-0 (logand (-> arg0 wind-time) 63)) (f0-4 (rand-vu-float-range 0.0 100.0)) (v1-5 (/ (-> arg0 wind-time) (the-as uint 120))) diff --git a/test/decompiler/reference/engine/math/matrix_REF.gc b/test/decompiler/reference/engine/math/matrix_REF.gc index 041359c519..c83c5de3e4 100644 --- a/test/decompiler/reference/engine/math/matrix_REF.gc +++ b/test/decompiler/reference/engine/math/matrix_REF.gc @@ -222,12 +222,7 @@ ;; Used lq/sq (defun vector3s-matrix*! ((dst vector3s) (vec vector3s) (mat matrix)) (let ((temp-vec3 (new-stack-vector0))) - (let ((v1-0 temp-vec3)) - (set! (-> v1-0 x) (-> vec x)) - (set! (-> v1-0 y) (-> vec y)) - (set! (-> v1-0 z) (-> vec z)) - (set! (-> v1-0 w) 1.0) - ) + (set-vector! temp-vec3 (-> vec x) (-> vec y) (-> vec z) 1.0) (vector-matrix*! temp-vec3 temp-vec3 mat) (set! (-> dst x) (-> temp-vec3 x)) (set! (-> dst y) (-> temp-vec3 y)) @@ -240,12 +235,7 @@ ;; Used lq/sq (defun vector3s-rotate*! ((dst vector3s) (vec vector3s) (mat matrix)) (let ((temp-vec3 (new-stack-vector0))) - (let ((v1-0 temp-vec3)) - (set! (-> v1-0 x) (-> vec x)) - (set! (-> v1-0 y) (-> vec y)) - (set! (-> v1-0 z) (-> vec z)) - (set! (-> v1-0 w) 1.0) - ) + (set-vector! temp-vec3 (-> vec x) (-> vec y) (-> vec z) 1.0) (vector-rotate*! temp-vec3 temp-vec3 mat) (set! (-> dst x) (-> temp-vec3 x)) (set! (-> dst y) (-> temp-vec3 y)) @@ -733,11 +723,12 @@ (sin-vec (new 'stack-no-clear 'vector)) (cos-vec (new 'stack-no-clear 'vector)) ) - (let ((v1-0 sincos-input)) - (set! (-> v1-0 x) (-> rots-deg x)) - (set! (-> v1-0 y) (- (-> rots-deg y) (-> rots-deg z))) - (set! (-> v1-0 z) (-> rots-deg z)) - (set! (-> v1-0 w) 1.0) + (set-vector! + sincos-input + (-> rots-deg x) + (- (-> rots-deg y) (-> rots-deg z)) + (-> rots-deg z) + 1.0 ) (vector-sincos! sin-vec cos-vec sincos-input) (let ((cos-y (-> cos-vec y)) diff --git a/test/decompiler/reference/engine/math/quaternion_REF.gc b/test/decompiler/reference/engine/math/quaternion_REF.gc index 217a8fe76a..4f5f004d95 100644 --- a/test/decompiler/reference/engine/math/quaternion_REF.gc +++ b/test/decompiler/reference/engine/math/quaternion_REF.gc @@ -1090,12 +1090,7 @@ (s5-0 (new 'stack-no-clear 'vector)) ) (quaternion->matrix gp-0 arg0) - (let ((v1-1 s5-0)) - (set! (-> v1-1 x) 0.0) - (set! (-> v1-1 y) 0.0) - (set! (-> v1-1 z) 1.0) - (set! (-> v1-1 w) 1.0) - ) + (set-vector! s5-0 0.0 0.0 1.0 1.0) (vector-matrix*! s5-0 s5-0 gp-0) (vector-y-angle s5-0) ) diff --git a/test/decompiler/reference/engine/math/vector_REF.gc b/test/decompiler/reference/engine/math/vector_REF.gc index 67b29f663b..2c2fb4729c 100644 --- a/test/decompiler/reference/engine/math/vector_REF.gc +++ b/test/decompiler/reference/engine/math/vector_REF.gc @@ -319,13 +319,13 @@ ) (cond ((>= max-step step-len) - (set! (-> vec x) (+ (-> vec x) x-step)) - (set! (-> vec z) (+ (-> vec z) z-step)) + (+! (-> vec x) x-step) + (+! (-> vec z) z-step) ) (else (let ((f2-6 (/ max-step step-len))) - (set! (-> vec x) (+ (-> vec x) (* f2-6 x-step))) - (set! (-> vec z) (+ (-> vec z) (* f2-6 z-step))) + (+! (-> vec x) (* f2-6 x-step)) + (+! (-> vec z) (* f2-6 z-step)) ) ) ) @@ -349,13 +349,13 @@ ) (cond ((>= max-step step-len) - (set! (-> vec y) (+ (-> vec y) y-step)) - (set! (-> vec z) (+ (-> vec z) z-step)) + (+! (-> vec y) y-step) + (+! (-> vec z) z-step) ) (else (let ((step-scale (/ max-step step-len))) - (set! (-> vec y) (+ (-> vec y) (* step-scale y-step))) - (set! (-> vec z) (+ (-> vec z) (* step-scale z-step))) + (+! (-> vec y) (* step-scale y-step)) + (+! (-> vec z) (* step-scale z-step)) ) ) ) @@ -385,15 +385,15 @@ ) (cond ((>= max-step step-len) - (set! (-> vec x) (+ (-> vec x) x-step)) - (set! (-> vec y) (+ (-> vec y) y-step)) - (set! (-> vec z) (+ (-> vec z) z-step)) + (+! (-> vec x) x-step) + (+! (-> vec y) y-step) + (+! (-> vec z) z-step) ) (else (let ((step-scale (/ max-step step-len))) - (set! (-> vec x) (+ (-> vec x) (* step-scale x-step))) - (set! (-> vec y) (+ (-> vec y) (* step-scale y-step))) - (set! (-> vec z) (+ (-> vec z) (* step-scale z-step))) + (+! (-> vec x) (* step-scale x-step)) + (+! (-> vec y) (* step-scale y-step)) + (+! (-> vec z) (* step-scale z-step)) ) ) ) @@ -1185,11 +1185,12 @@ ;; definition for function rand-vu-sphere-point! (defun rand-vu-sphere-point! ((arg0 vector) (arg1 float)) - (let ((s4-0 arg0)) - (set! (-> s4-0 x) (rand-vu-float-range -1.0 1.0)) - (set! (-> s4-0 y) (rand-vu-float-range -1.0 1.0)) - (set! (-> s4-0 z) (rand-vu-float-range -1.0 1.0)) - (set! (-> s4-0 w) 1.0) + (set-vector! + arg0 + (rand-vu-float-range -1.0 1.0) + (rand-vu-float-range -1.0 1.0) + (rand-vu-float-range -1.0 1.0) + 1.0 ) (vector-normalize! arg0 (rand-vu-float-range 0.0 arg1)) ) diff --git a/test/decompiler/reference/engine/physics/trajectory_REF.gc b/test/decompiler/reference/engine/physics/trajectory_REF.gc index e415e84c51..2f7776369b 100644 --- a/test/decompiler/reference/engine/physics/trajectory_REF.gc +++ b/test/decompiler/reference/engine/physics/trajectory_REF.gc @@ -5,10 +5,10 @@ ;; Used lq/sq (defmethod TODO-RENAME-9 trajectory ((obj trajectory) (arg0 float) (arg1 vector)) (set! (-> arg1 quad) (-> obj initial-position quad)) - (set! (-> arg1 x) (+ (-> arg1 x) (* arg0 (-> obj initial-velocity x)))) - (set! (-> arg1 y) (+ (-> arg1 y) (* arg0 (-> obj initial-velocity y)))) - (set! (-> arg1 z) (+ (-> arg1 z) (* arg0 (-> obj initial-velocity z)))) - (set! (-> arg1 y) (+ (-> arg1 y) (* (* (* 0.5 arg0) arg0) (-> obj gravity)))) + (+! (-> arg1 x) (* arg0 (-> obj initial-velocity x))) + (+! (-> arg1 y) (* arg0 (-> obj initial-velocity y))) + (+! (-> arg1 z) (* arg0 (-> obj initial-velocity z))) + (+! (-> arg1 y) (* (* (* 0.5 arg0) arg0) (-> obj gravity))) arg1 ) @@ -19,7 +19,7 @@ trajectory ((obj trajectory) (arg0 float) (arg1 vector)) (set! (-> arg1 quad) (-> obj initial-velocity quad)) - (set! (-> arg1 y) (+ (-> arg1 y) (* arg0 (-> obj gravity)))) + (+! (-> arg1 y) (* arg0 (-> obj gravity))) arg1 ) diff --git a/test/decompiler/reference/engine/ps2/rpc-h_REF.gc b/test/decompiler/reference/engine/ps2/rpc-h_REF.gc index 37db005a76..08d17e558d 100644 --- a/test/decompiler/reference/engine/ps2/rpc-h_REF.gc +++ b/test/decompiler/reference/engine/ps2/rpc-h_REF.gc @@ -223,7 +223,7 @@ (set! v1-0 (-> obj current)) ) (let ((v0-2 (&+ (-> v1-0 base) (* (-> v1-0 elt-used) (-> v1-0 elt-size))))) - (set! (-> v1-0 elt-used) (+ (-> v1-0 elt-used) 1)) + (+! (-> v1-0 elt-used) 1) v0-2 ) ) @@ -232,7 +232,7 @@ ;; definition for method 11 of type rpc-buffer-pair (defmethod decrement-elt-used rpc-buffer-pair ((obj rpc-buffer-pair)) (if (> (-> obj current elt-used) 0) - (set! (-> obj current elt-used) (+ (-> obj current elt-used) -1)) + (+! (-> obj current elt-used) -1) ) 0 ) diff --git a/test/decompiler/reference/engine/ps2/timer_REF.gc b/test/decompiler/reference/engine/ps2/timer_REF.gc index 9c154536a7..986da8e977 100644 --- a/test/decompiler/reference/engine/ps2/timer_REF.gc +++ b/test/decompiler/reference/engine/ps2/timer_REF.gc @@ -100,12 +100,9 @@ (set! (-> arg0 begin-level) 0) 0 (.mfc0 a1-0 Count) - (set! + (+! (-> arg0 prev-time-elapsed) - (+ - (-> arg0 prev-time-elapsed) - (the-as uint (- a1-0 (the-as int (-> arg0 start-time)))) - ) + (the-as uint (- a1-0 (the-as int (-> arg0 start-time)))) ) ) (the-as uint 0) @@ -120,7 +117,7 @@ (.mfc0 v1-3 Count) (set! (-> arg0 start-time) (the-as uint v1-3)) ) - (set! (-> arg0 begin-level) (+ (-> arg0 begin-level) 1)) + (+! (-> arg0 begin-level) 1) 0 ) @@ -129,16 +126,13 @@ ;; WARN: Unsupported inline assembly instruction kind - [mfc0 a1, Count] (defun stopwatch-end ((arg0 stopwatch)) (local-vars (a1-0 int)) - (set! (-> arg0 begin-level) (+ (-> arg0 begin-level) -1)) + (+! (-> arg0 begin-level) -1) (when (zero? (-> arg0 begin-level)) 0 (.mfc0 a1-0 Count) - (set! + (+! (-> arg0 prev-time-elapsed) - (+ - (-> arg0 prev-time-elapsed) - (the-as uint (- a1-0 (the-as int (-> arg0 start-time)))) - ) + (the-as uint (- a1-0 (the-as int (-> arg0 start-time)))) ) ) (the-as uint 0) diff --git a/test/decompiler/reference/engine/target/joint-mod-h_REF.gc b/test/decompiler/reference/engine/target/joint-mod-h_REF.gc index c2353db5ad..60a5d302e9 100644 --- a/test/decompiler/reference/engine/target/joint-mod-h_REF.gc +++ b/test/decompiler/reference/engine/target/joint-mod-h_REF.gc @@ -89,12 +89,7 @@ (set! (-> obj process) proc) (set! (-> obj joint) (-> proc node-list data joint-idx)) (set-mode! obj mode) - (let ((twist-max (-> obj twist-max))) - (set! (-> twist-max x) 8192.0) - (set! (-> twist-max y) 11832.889) - (set! (-> twist-max z) 0.0) - (set! (-> twist-max w) 1.0) - ) + (set-vector! (-> obj twist-max) 8192.0 11832.889 0.0 1.0) (set! (-> obj up) (the-as uint 1)) (set! (-> obj nose) (the-as uint 2)) (set! (-> obj ear) (the-as uint 0)) @@ -150,12 +145,7 @@ (set! (-> joint param2) #f) (vector-reset! (-> obj trans)) (quaternion-identity! (-> obj quat)) - (let ((v1-2 (-> obj scale))) - (set! (-> v1-2 x) 1.0) - (set! (-> v1-2 y) 1.0) - (set! (-> v1-2 z) 1.0) - (set! (-> v1-2 w) 1.0) - ) + (set-vector! (-> obj scale) 1.0 1.0 1.0 1.0) (set! (-> obj max-dist) (the-as meters #f)) ) (((joint-mod-handler-mode joint-set*)) @@ -164,12 +154,7 @@ (set! (-> joint param2) #f) (vector-reset! (-> obj trans)) (quaternion-identity! (-> obj quat)) - (let ((v1-4 (-> obj scale))) - (set! (-> v1-4 x) 1.0) - (set! (-> v1-4 y) 1.0) - (set! (-> v1-4 z) 1.0) - (set! (-> v1-4 w) 1.0) - ) + (set-vector! (-> obj scale) 1.0 1.0 1.0 1.0) (set! (-> obj max-dist) (the-as meters #f)) ) ) @@ -724,13 +709,8 @@ ) (vector*! (-> arg1 scale) (-> arg1 scale) (-> s5-0 scale)) (cspace<-parented-transformq-joint! arg0 arg1) - (when (-> s5-0 max-dist) - (let ((v1-4 (-> arg0 bone scale))) - (set! (-> v1-4 x) 1.0) - (set! (-> v1-4 y) 1.0) - (set! (-> v1-4 z) 1.0) - (set! (-> v1-4 w) 1.0) - ) + (if (-> s5-0 max-dist) + (set-vector! (-> arg0 bone scale) 1.0 1.0 1.0 1.0) ) ) 0 @@ -797,7 +777,7 @@ (f2-1 (* 6.28318 (-> s4-0 wheel-radius))) (f0-4 (* (* f1-0 (/ 1.0 f2-1)) f0-3)) ) - (set! (-> s4-0 angle) (+ (-> s4-0 angle) f0-4)) + (+! (-> s4-0 angle) f0-4) ) ) (quaternion-vector-angle! @@ -830,12 +810,7 @@ (set! (-> v0-0 wheel-radius) arg2) (set! (-> v0-0 wheel-axis) arg3) (set! (-> v0-0 angle) 0.0) - (let ((v1-2 (-> v0-0 last-position))) - (set! (-> v1-2 x) 0.0) - (set! (-> v1-2 y) 0.0) - (set! (-> v1-2 z) 0.0) - (set! (-> v1-2 w) 1.0) - ) + (set-vector! (-> v0-0 last-position) 0.0 0.0 0.0 1.0) (let ((v1-5 (-> arg0 node-list data arg1))) (set! (-> v1-5 param0) joint-mod-wheel-callback) (set! (-> v1-5 param1) v0-0) diff --git a/test/decompiler/reference/engine/ui/credits_REF.gc b/test/decompiler/reference/engine/ui/credits_REF.gc index 43286e566f..af1256340f 100644 --- a/test/decompiler/reference/engine/ui/credits_REF.gc +++ b/test/decompiler/reference/engine/ui/credits_REF.gc @@ -140,12 +140,9 @@ (print-game-text s3-0 gp-0 #f (the int f30-1) 22) ) ) - (set! + (+! (-> gp-0 origin y) - (+ - (-> gp-0 origin y) - (the float (-> *title-credits-spacing* (+ s5-1 s4-1))) - ) + (the float (-> *title-credits-spacing* (+ s5-1 s4-1))) ) ) ) @@ -206,7 +203,7 @@ (set! v1-13 25) ) ) - (set! (-> s5-0 origin y) (+ (-> s5-0 origin y) (the float v1-13))) + (+! (-> s5-0 origin y) (the float v1-13)) (+! gp-0 1) ) #f diff --git a/test/decompiler/reference/engine/util/sync-info_REF.gc b/test/decompiler/reference/engine/util/sync-info_REF.gc index a546f28ea3..96ac1d5079 100644 --- a/test/decompiler/reference/engine/util/sync-info_REF.gc +++ b/test/decompiler/reference/engine/util/sync-info_REF.gc @@ -400,17 +400,14 @@ ) ) ) - (set! (-> obj vel) (+ (-> obj vel) f0-3)) + (+! (-> obj vel) f0-3) ) (set! (-> obj vel) (fmin (-> obj max-vel) (fmax (- (-> obj max-vel)) (-> obj vel))) ) (set! (-> obj vel) (* (-> obj vel) (-> obj damping))) - (set! - (-> obj value) - (+ (-> obj value) (* (-> obj vel) (-> *display* time-adjust-ratio))) - ) + (+! (-> obj value) (* (-> obj vel) (-> *display* time-adjust-ratio))) (-> obj value) ) diff --git a/test/decompiler/reference/kernel/gkernel_REF.gc b/test/decompiler/reference/kernel/gkernel_REF.gc index 5c97fd1cb3..9f6d723562 100644 --- a/test/decompiler/reference/kernel/gkernel_REF.gc +++ b/test/decompiler/reference/kernel/gkernel_REF.gc @@ -1058,7 +1058,7 @@ (shrink-heap obj s3-0) (relocate s3-0 (- s2-0)) (set! (-> obj first-gap) (find-gap obj s4-1)) - (set! (-> obj compact-count) (+ (-> obj compact-count) 1)) + (+! (-> obj compact-count) 1) ) ) ) diff --git a/test/decompiler/test_FormExpressionBuild2.cpp b/test/decompiler/test_FormExpressionBuild2.cpp index e3baaa022d..2d1713e641 100644 --- a/test/decompiler/test_FormExpressionBuild2.cpp +++ b/test/decompiler/test_FormExpressionBuild2.cpp @@ -1484,12 +1484,7 @@ TEST_F(FormRegressionTest, VectorNewInlineProp) { std::string expected = "(begin\n" " (let ((s5-0 (new-stack-vector0)))\n" - " (let ((v1-0 s5-0))\n" - " (set! (-> v1-0 x) (-> arg1 x))\n" - " (set! (-> v1-0 y) (-> arg1 y))\n" - " (set! (-> v1-0 z) (-> arg1 z))\n" - " (set! (-> v1-0 w) 0.0)\n" - " )\n" + " (set-vector! s5-0 (-> arg1 x) (-> arg1 y) (-> arg1 z) 0.0)\n" " (vector-matrix*! s5-0 s5-0 arg2)\n" " (set! (-> arg0 x) (-> s5-0 x))\n" " (set! (-> arg0 y) (-> s5-0 y))\n" diff --git a/test/decompiler/test_gkernel_decomp.cpp b/test/decompiler/test_gkernel_decomp.cpp index 69141cc049..526c5cbe29 100644 --- a/test/decompiler/test_gkernel_decomp.cpp +++ b/test/decompiler/test_gkernel_decomp.cpp @@ -2613,7 +2613,7 @@ TEST_F(FormRegressionTest, ExprMethod16DeadPoolHeap) { " (shrink-heap arg0 s3-0)\n" " (relocate s3-0 (- s2-0))\n" " (set! (-> arg0 first-gap) (find-gap arg0 s4-1))\n" - " (set! (-> arg0 compact-count) (+ (-> arg0 compact-count) 1))\n" + " (+! (-> arg0 compact-count) 1)\n" " )\n" " )\n" " )\n" From 0ed587cba9ed0477bb92efe8a8ee72a7d93d4fe4 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 17 Jul 2021 19:01:30 +0000 Subject: [PATCH 15/57] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/{about.7917c4b3.js => about.3bed851a.js} | 4 ++-- docs/js/{about.7917c4b3.js.map => about.3bed851a.js.map} | 2 +- docs/js/{app.734a4a0b.js => app.79cea398.js} | 4 ++-- docs/js/{app.734a4a0b.js.map => app.79cea398.js.map} | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename docs/js/{about.7917c4b3.js => about.3bed851a.js} (99%) rename docs/js/{about.7917c4b3.js.map => about.3bed851a.js.map} (99%) rename docs/js/{app.734a4a0b.js => app.79cea398.js} (97%) rename docs/js/{app.734a4a0b.js.map => app.79cea398.js.map} (98%) diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index a8fd6c7ded..6842c1447f 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 107452, + "value": 107228, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index 5523133e04..79a3d40716 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.7917c4b3.js b/docs/js/about.3bed851a.js similarity index 99% rename from docs/js/about.7917c4b3.js rename to docs/js/about.3bed851a.js index 4016f16b9a..72efaca026 100644 --- a/docs/js/about.7917c4b3.js +++ b/docs/js/about.3bed851a.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107452,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.7917c4b3.js.map \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107228,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.3bed851a.js.map \ No newline at end of file diff --git a/docs/js/about.7917c4b3.js.map b/docs/js/about.3bed851a.js.map similarity index 99% rename from docs/js/about.7917c4b3.js.map rename to docs/js/about.3bed851a.js.map index c754d92bd4..ce35d0b4ec 100644 --- a/docs/js/about.7917c4b3.js.map +++ b/docs/js/about.3bed851a.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?1e25","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.7917c4b3.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?1e25","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.3bed851a.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.734a4a0b.js b/docs/js/app.79cea398.js similarity index 97% rename from docs/js/app.734a4a0b.js rename to docs/js/app.79cea398.js index 576c7c81fb..c01e46c7f8 100644 --- a/docs/js/app.734a4a0b.js +++ b/docs/js/app.79cea398.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?341e","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.79cea398.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"3bed851a\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file From b70fcb2f7a7ed8acd370f714e8d01ca6cc821ffb Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Sat, 17 Jul 2021 18:07:21 -0400 Subject: [PATCH 16/57] support non-virtual gos in decompiler (#707) --- common/CMakeLists.txt | 1 + common/type_system/state.cpp | 15 ++ common/type_system/state.h | 9 + decompiler/IR2/AtomicOpTypeAnalysis.cpp | 34 +++- decompiler/IR2/FormExpressionAnalysis.cpp | 79 ++++++- decompiler/config/all-types.gc | 33 +-- .../jak1_ntsc_black_label/type_casts.jsonc | 10 +- .../jak1_ntsc_black_label/var_names.jsonc | 15 +- decompiler/util/DecompilerTypeSystem.cpp | 7 + decompiler/util/TP_Type.cpp | 6 + decompiler/util/TP_Type.h | 9 + goal_src/engine/collide/collide-frag.gc | 32 +-- goal_src/engine/collide/collide-mesh-h.gc | 10 +- goal_src/engine/collide/collide-shape-h.gc | 30 ++- goal_src/engine/collide/collide-target-h.gc | 2 +- goal_src/engine/draw/drawable-actor-h.gc | 2 +- goal_src/engine/draw/drawable-ambient-h.gc | 2 +- goal_src/engine/draw/drawable-h.gc | 10 +- goal_src/engine/draw/drawable-inline-array.gc | 7 +- goal_src/engine/game/fact-h.gc | 96 +++++---- goal_src/engine/game/game-h.gc | 12 +- goal_src/engine/geometry/vol-h.gc | 192 +++++++----------- goal_src/engine/gfx/lights.gc | 9 +- goal_src/engine/level/level.gc | 8 +- goal_src/engine/target/joint-mod-h.gc | 96 ++++----- goal_src/engine/target/pat-h.gc | 3 + goal_src/engine/target/surface-h.gc | 20 +- goal_src/kernel-defs.gc | 4 +- goal_src/kernel/gkernel-h.gc | 2 +- goal_src/kernel/gkernel.gc | 8 +- .../decompiler/reference/decompiler-macros.gc | 9 +- .../reference/engine/anim/aligner-h_REF.gc | 7 +- .../engine/collide/collide-frag_REF.gc | 14 +- .../engine/collide/collide-mesh-h_REF.gc | 16 +- .../engine/collide/collide-shape-h_REF.gc | 86 ++++---- .../engine/collide/collide-target-h_REF.gc | 20 +- .../engine/draw/drawable-actor-h_REF.gc | 2 +- .../engine/draw/drawable-ambient-h_REF.gc | 2 +- .../reference/engine/draw/drawable-h_REF.gc | 4 +- .../engine/draw/drawable-inline-array_REF.gc | 8 +- .../reference/engine/game/fact-h_REF.gc | 169 ++++++++------- .../reference/engine/geometry/vol-h_REF.gc | 181 ++++++++--------- .../reference/engine/gfx/tie/prototype_REF.gc | 6 +- .../reference/engine/nav/navigate-h_REF.gc | 87 ++++---- .../reference/engine/nav/path-h_REF.gc | 109 +++++----- .../engine/target/joint-mod-h_REF.gc | 12 +- .../reference/kernel/gkernel_REF.gc | 13 +- test/decompiler/test_gkernel_decomp.cpp | 49 ++--- 48 files changed, 824 insertions(+), 733 deletions(-) create mode 100644 common/type_system/state.cpp create mode 100644 common/type_system/state.h diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index fde51701b3..bcf36d3a68 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -12,6 +12,7 @@ add_library(common log/log.cpp type_system/defenum.cpp type_system/deftype.cpp + type_system/state.cpp type_system/Type.cpp type_system/TypeFieldLookup.cpp type_system/TypeSpec.cpp diff --git a/common/type_system/state.cpp b/common/type_system/state.cpp new file mode 100644 index 0000000000..b601df7471 --- /dev/null +++ b/common/type_system/state.cpp @@ -0,0 +1,15 @@ +#include "state.h" + +/*! + * Convert a (state ...) to the function required to go. Must be state. + */ +TypeSpec state_to_go_function(const TypeSpec& state_type) { + assert(state_type.base_type() == "state"); + std::vector arg_types; + for (int i = 0; i < (int)state_type.arg_count() - 1; i++) { + arg_types.push_back(state_type.get_arg(i)); + } + + arg_types.push_back(TypeSpec("none")); // none for the return. + return TypeSpec("function", arg_types); +} \ No newline at end of file diff --git a/common/type_system/state.h b/common/type_system/state.h new file mode 100644 index 0000000000..1d1ebd5f7f --- /dev/null +++ b/common/type_system/state.h @@ -0,0 +1,9 @@ +#pragma once + +#include "common/type_system/TypeSpec.h" + +/*! + * This contains type system utilities related to state and process + */ + +TypeSpec state_to_go_function(const TypeSpec& state_type); diff --git a/decompiler/IR2/AtomicOpTypeAnalysis.cpp b/decompiler/IR2/AtomicOpTypeAnalysis.cpp index dabf071443..9f472e93b1 100644 --- a/decompiler/IR2/AtomicOpTypeAnalysis.cpp +++ b/decompiler/IR2/AtomicOpTypeAnalysis.cpp @@ -5,6 +5,7 @@ #include "decompiler/util/TP_Type.h" #include "decompiler/util/DecompilerTypeSystem.h" #include "decompiler/IR2/bitfields.h" +#include "common/type_system/state.h" namespace decompiler { @@ -81,6 +82,8 @@ TP_Type SimpleAtom::get_type(const TypeState& input, // which actually means that you get the first address in the symbol table. // it's not really a linked symbol, but the basic op builder represents it as one. return TP_Type::make_from_ts(TypeSpec("pointer")); + } else if (m_string == "enter-state") { + return TP_Type::make_enter_state(); } // look up the type of the symbol @@ -798,9 +801,18 @@ TypeState SetVarConditionOp::propagate_types_internal(const TypeState& input, TypeState StoreOp::propagate_types_internal(const TypeState& input, const Env& env, DecompilerTypeSystem& dts) { + TypeState output = input; + + // look for setting the next state of the current process + IR2_RegOffset ro; + if (get_as_reg_offset(m_addr, &ro)) { + if (ro.reg == Register(Reg::GPR, Reg::S6) && ro.offset == 72) { + output.next_state_type = m_value.get_type(input, env, dts); + } + } (void)env; (void)dts; - return input; + return output; } TP_Type LoadVarOp::get_src_type(const TypeState& input, @@ -1113,6 +1125,26 @@ TypeState CallOp::propagate_types_internal(const TypeState& input, throw std::runtime_error("Called something that was not a function: " + in_type.print()); } + // If we call enter-state, update our type. + if (in_tp.kind == TP_Type::Kind::ENTER_STATE_FUNCTION) { + // this is a GO! + auto state_type = input.next_state_type.typespec(); + if (state_type.base_type() != "state") { + throw std::runtime_error( + fmt::format("At op {}, called enter-state, but the current next-state has type {}, which " + "is not a valid state.", + m_my_idx, input.next_state_type.print())); + } + + if (state_type.arg_count() == 0) { + throw std::runtime_error(fmt::format( + "At op {}, tried to enter-state, but the type of (-> s6 next-state) is just a plain " + "state. The decompiler must know the specific state type.", + m_my_idx)); + } + in_type = state_to_go_function(state_type); + } + if (in_type.arg_count() < 1) { throw std::runtime_error("Called a function, but we do not know its type"); } diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index d65f80958d..84e1735093 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -7,6 +7,7 @@ #include "decompiler/util/data_decompile.h" #include "decompiler/IR2/bitfields.h" #include "common/util/BitUtils.h" +#include "common/type_system/state.h" /* * TODO @@ -2334,6 +2335,34 @@ void AbsElement::update_from_stack(const Env& env, result->push_back(new_form); } +namespace { +/*! + * Try to recognize setting the next state. + */ +Form* get_set_next_state(FormElement* set_elt, const Env& env) { + auto as_set = dynamic_cast(set_elt); + if (!as_set) { + return nullptr; + } + + auto dst = as_set->dst(); + auto dst_matcher = + Matcher::deref(Matcher::any_reg(0), false, {DerefTokenMatcher::string("next-state")}); + auto mr = match(dst_matcher, dst); + if (!mr.matched) { + fmt::print("failed to match dst {}\n", dst->to_string(env)); + return nullptr; + } + + if (mr.maps.regs.at(0)->reg() != Register(Reg::GPR, Reg::S6)) { + fmt::print("failed to match pp reg, got {}\n", mr.maps.regs.at(0)->reg().to_string()); + return nullptr; + } + + return as_set->src(); +} +} // namespace + /////////////////// // FunctionCallElement /////////////////// @@ -2354,11 +2383,42 @@ void FunctionCallElement::update_from_stack(const Env& env, } TypeSpec function_type; - auto& tp_type = env.get_types_before_op(all_pop_vars.at(0).idx()).get(all_pop_vars.at(0).reg()); + auto& in_type_state = env.get_types_before_op(all_pop_vars.at(0).idx()); + auto& tp_type = in_type_state.get(all_pop_vars.at(0).reg()); if (env.has_type_analysis()) { function_type = tp_type.typespec(); } + // if we're actually a go: + Form* go_next_state = nullptr; + if (tp_type.kind == TP_Type::Kind::ENTER_STATE_FUNCTION) { + auto& next_state_type = in_type_state.next_state_type; + if (next_state_type.typespec().base_type() != "state") { + throw std::runtime_error("Bad state type in expressions (not state): " + + next_state_type.print()); + } + if (next_state_type.typespec().arg_count() == 0) { + throw std::runtime_error("Bad state type in expressions (no args): " + + next_state_type.print()); + } + + // modify our type for the go. + function_type = state_to_go_function(next_state_type.typespec()); + + // up next, we need to deal with the + // (set! (-> pp next-state) process-drawable-art-error) + auto stack_back = stack.pop_back(pool); + + auto next_state = get_set_next_state(stack_back, env); + if (!next_state) { + throw std::runtime_error( + fmt::format("Expressions couldn't figure out this go. The back of the stack was {} and " + "we expected to see something set (-> pp next-state) instead.", + stack_back->to_string(env))); + } + go_next_state = next_state; + } + bool swap_function = tp_type.kind == TP_Type::Kind::NON_VIRTUAL_METHOD && all_pop_vars.size() >= 2; if (tp_type.kind == TP_Type::Kind::NON_VIRTUAL_METHOD) { @@ -2410,6 +2470,16 @@ void FunctionCallElement::update_from_stack(const Env& env, FormElement* new_form = nullptr; + if (go_next_state) { + arg_forms.insert(arg_forms.begin(), go_next_state); + auto go_form = pool.alloc_element( + GenericOperator::make_function( + pool.alloc_single_element_form(nullptr, "go")), + arg_forms); + result->push_back(go_form); + return; + } + { // deal with virtual method calls. auto matcher = Matcher::op(GenericOpMatcher::fixed(FixedOperatorKind::METHOD_OF_OBJECT), @@ -2448,6 +2518,7 @@ void FunctionCallElement::update_from_stack(const Env& env, new_form = pool.alloc_element( GenericOperator::make_function(mr.maps.forms.at(1)), arg_forms); result->push_back(new_form); + assert(!go_next_state); return; } } @@ -2496,6 +2567,7 @@ void FunctionCallElement::update_from_stack(const Env& env, auto new_op = pool.alloc_element( GenericOperator::make_fixed(FixedOperatorKind::OBJECT_NEW), new_args); result->push_back(new_op); + assert(!go_next_state); return; } if (name == "new" && type_1 == "type") { @@ -2503,6 +2575,7 @@ void FunctionCallElement::update_from_stack(const Env& env, auto new_op = pool.alloc_element( GenericOperator::make_fixed(FixedOperatorKind::TYPE_NEW), new_args); result->push_back(new_op); + assert(!go_next_state); return; } else if (name == "new") { constexpr int allocation = 2; @@ -2538,6 +2611,7 @@ void FunctionCallElement::update_from_stack(const Env& env, auto cons_op = pool.alloc_element( GenericOperator::make_fixed(FixedOperatorKind::CONS), cons_args); result->push_back(cons_op); + assert(!go_next_state); return; } else { // just normal construction on the heap @@ -2547,6 +2621,7 @@ void FunctionCallElement::update_from_stack(const Env& env, auto new_op = pool.alloc_element( GenericOperator::make_fixed(FixedOperatorKind::NEW), new_args); result->push_back(new_op); + assert(!go_next_state); return; } } @@ -2596,6 +2671,7 @@ void FunctionCallElement::update_from_stack(const Env& env, auto gop = GenericOperator::make_function(method_op); result->push_back(pool.alloc_element(gop, arg_forms)); + assert(!go_next_state); return; } @@ -2633,6 +2709,7 @@ void FunctionCallElement::update_from_stack(const Env& env, } result->push_back(pool.alloc_element( GenericOperator::make_fixed(FixedOperatorKind::NEW), stack_new_args)); + assert(!go_next_state); return; } } diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index 66fb25521f..3c304cee86 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -962,13 +962,15 @@ ;; - Types (define-extern process-tree type) ; deftype provided by C Kernel +(declare-type process basic) + (deftype process-tree (basic) ((name basic :offset-assert 4) (mask process-mask :offset-assert 8) (parent (pointer process-tree) :offset-assert 12) (brother (pointer process-tree) :offset-assert 16) (child (pointer process-tree) :offset-assert 20) - (ppointer (pointer process-tree) :offset-assert 24) + (ppointer (pointer process) :offset-assert 24) (self process-tree :offset-assert 28) ) (:methods @@ -5831,8 +5833,8 @@ :size-assert #x20 :flag-assert #x1200000020 (:methods - (dummy-9 (_type_) _type_ 9) ;; probably login or init. - (dummy-10 (_type_ drawable display-frame) int 10) ;; display-frame is from the method inspect tool + (login (_type_) _type_ 9) ;; probably login or init. + (draw (_type_ drawable display-frame) int 10) ;; display-frame is from the method inspect tool (dummy-11 (_type_ int) none 11) ; int - length (dummy-12 (_type_ int) none 12) ; int - length (dummy-13 (_type_ int) none 13) ; int - length @@ -9654,7 +9656,8 @@ ;; - Symbols -(define-extern process-drawable-art-error state) +(declare-type process-drawable process) +(define-extern process-drawable-art-error (state string process-drawable)) (define-extern *FACT-bank* fact-bank) ;; unknown type @@ -10489,7 +10492,7 @@ ((vertex vector 3 :inline :offset-assert 0) (intersect vector :inline :offset-assert 48) (normal vector :inline :offset-assert 64) - (pat uint32 :offset-assert 80) + (pat pat-surface :offset-assert 80) ) :method-count-assert 9 :size-assert #x54 @@ -10497,9 +10500,9 @@ ) (deftype collide-mesh-tri (structure) - ((vertex-index uint8 3 :offset-assert 0) - (unused uint8 :offset-assert 3) - (pat uint32 :offset-assert 4) + ((vertex-index uint8 3 :offset-assert 0) + (unused uint8 :offset-assert 3) + (pat pat-surface :offset-assert 4) ) :pack-me :method-count-assert 9 @@ -10549,7 +10552,7 @@ ((vertex vector 3 :inline :offset-assert 0) (normal vector :inline :offset-assert 48) (bbox4w bounding-box4w :inline :offset-assert 64) - (pat uint32 :offset 60) + (pat pat-surface :offset 60) ) :method-count-assert 9 :size-assert #x60 @@ -10703,7 +10706,7 @@ ) (deftype collide-shape-prim-sphere (collide-shape-prim) - ((pat uint32 :offset-assert 72) + ((pat pat-surface :offset-assert 72) ) :method-count-assert 28 :size-assert #x4c @@ -10805,7 +10808,7 @@ (max-iteration-count uint8 :offset-assert 144) (nav-flags uint8 :offset-assert 145) (pad-byte uint8 2 :offset-assert 146) - (pat-ignore-mask uint32 :offset-assert 148) + (pat-ignore-mask pat-surface :offset-assert 148) (event-self basic :offset-assert 152) (event-other basic :offset-assert 156) (root-prim basic :offset-assert 160) @@ -10853,9 +10856,9 @@ ((rider-time uint64 :offset-assert 184) (rider-last-move vector :inline :offset-assert 192) (trans-old vector 3 :inline :offset-assert 208) - (poly-pat uint32 :offset-assert 256) - (cur-pat uint32 :offset-assert 260) - (ground-pat uint32 :offset-assert 264) + (poly-pat pat-surface :offset-assert 256) + (cur-pat pat-surface :offset-assert 260) + (ground-pat pat-surface :offset-assert 264) (status uint64 :offset-assert 272) (old-status uint64 :offset-assert 280) (prev-status uint64 :offset-assert 288) @@ -10919,7 +10922,7 @@ (surface-normal vector :inline :offset-assert 80) (time uint64 :offset-assert 96) (status uint64 :offset-assert 104) - (pat uint32 :offset-assert 112) + (pat pat-surface :offset-assert 112) (reaction-flag uint32 :offset-assert 116) ) :method-count-assert 10 diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index 8355f7e1e1..a7123bde12 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -544,7 +544,7 @@ "(method 0 fact-info)": [ [81, "v0", "float"], - [16, "t9", "(function string none)"], + //[16, "t9", "(function string none)"], ["_stack_", 16, "res-tag"], [[32, 43], "v1", "(pointer int32)"], [86, "gp", "fact-info"] @@ -553,7 +553,6 @@ "(method 0 fact-info-target)": [[[3, 20], "gp", "fact-info-target"]], "(method 0 align-control)": [ - [[8, 13], "t9", "(function object object)"], [[14, 18], "v0", "align-control"] ], @@ -609,8 +608,7 @@ "(method 11 joint-mod)": [ [15, "s3", "process-drawable"], - [[26, 66], "s3", "fact-info-enemy"], - [[45, 50], "v1", "(pointer process)"] + [[26, 66], "s3", "fact-info-enemy"] ], "joint-mod-look-at-handler": [[[2, 254], "gp", "joint-mod"]], @@ -721,7 +719,6 @@ "actor-link-subtask-complete-hook": [[1, "v1", "entity-links"]], "(method 0 vol-control)": [ - [[9, 14], "t9", "(function object object)"], [30, "s5", "res-lump"], [36, "s5", "res-lump"], [58, "s5", "res-lump"], @@ -747,7 +744,6 @@ "(method 12 art-group)": [[13, "a0", "art-joint-anim"]], "(method 0 path-control)": [ - [15, "t9", "(function string none)"], ["_stack_", 16, "res-tag"] ], @@ -763,8 +759,6 @@ [77, "a0", "entity-links"] ], - "(method 0 nav-control)": [[17, "t9", "(function string none)"]], - "add-debug-point": [ [125, "a3", "pointer"], [[27, 144], "a0", "(pointer uint64)"], diff --git a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc index abed42d99e..a1a9576b93 100644 --- a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc @@ -1840,8 +1840,7 @@ "vars": { "gp-0": ["obj", "fact-info"], "s5-0": "ent", - "sv-16": "tag", - "t9-1": ["go-func", "(function string none)"] + "sv-16": "tag" } }, @@ -1983,8 +1982,7 @@ "vars": { "s1-0": "proc-drawable", "s3-1": ["enemy-facts", "fact-info-enemy"], - "f30-0": "dist", - "v1-12": ["ppointer", "(pointer process)"] + "f30-0": "dist" } }, @@ -2382,5 +2380,14 @@ "sv-32":"load-status", "sv-40":"heap-free" } + }, + + "(method 16 process-drawable)" : { + "vars": { + "s3-0":"body-T-world", + "s0-0":"world-T-body", + "s2-0":"grav-rt-body", + "a1-5":"vel-rt-body" + } } } diff --git a/decompiler/util/DecompilerTypeSystem.cpp b/decompiler/util/DecompilerTypeSystem.cpp index bfb28cecdb..916c8c3187 100644 --- a/decompiler/util/DecompilerTypeSystem.cpp +++ b/decompiler/util/DecompilerTypeSystem.cpp @@ -379,6 +379,13 @@ bool DecompilerTypeSystem::tp_lca(TypeState* combined, const TypeState& add) { } } + bool diff = false; + auto new_type = tp_lca(combined->next_state_type, add.next_state_type, &diff); + if (diff) { + result = true; + combined->next_state_type = new_type; + } + return result; } diff --git a/decompiler/util/TP_Type.cpp b/decompiler/util/TP_Type.cpp index bf6048708c..ffbe5f8909 100644 --- a/decompiler/util/TP_Type.cpp +++ b/decompiler/util/TP_Type.cpp @@ -71,6 +71,8 @@ std::string TP_Type::print() const { return fmt::format("", m_ts.print()); case Kind::LABEL_ADDR: return ""; + case Kind::ENTER_STATE_FUNCTION: + return ""; case Kind::INVALID: default: assert(false); @@ -124,6 +126,7 @@ bool TP_Type::operator==(const TP_Type& other) const { case Kind::PCPYUD_BITFIELD_AND: return m_pcpyud == other.m_pcpyud && m_ts == other.m_ts; case Kind::LABEL_ADDR: + case Kind::ENTER_STATE_FUNCTION: return true; case Kind::INVALID: default: @@ -185,6 +188,9 @@ TypeSpec TP_Type::typespec() const { return TypeSpec("int"); case Kind::LABEL_ADDR: return TypeSpec("pointer"); // ? + case Kind::ENTER_STATE_FUNCTION: + // give a general function so we can't call it normally. + return TypeSpec("function"); case Kind::INVALID: default: assert(false); diff --git a/decompiler/util/TP_Type.h b/decompiler/util/TP_Type.h index 9d0010df38..ce076cdb56 100644 --- a/decompiler/util/TP_Type.h +++ b/decompiler/util/TP_Type.h @@ -36,6 +36,7 @@ class TP_Type { PCPYUD_BITFIELD_AND, LEFT_SHIFTED_BITFIELD, // (bitfield << some-constant) LABEL_ADDR, + ENTER_STATE_FUNCTION, INVALID } kind = Kind::UNINITIALIZED; TP_Type() = default; @@ -65,6 +66,7 @@ class TP_Type { case Kind::PCPYUD_BITFIELD: case Kind::PCPYUD_BITFIELD_AND: case Kind::LABEL_ADDR: + case Kind::ENTER_STATE_FUNCTION: return false; case Kind::UNINITIALIZED: case Kind::OBJECT_NEW_METHOD: @@ -254,6 +256,12 @@ class TP_Type { return result; } + static TP_Type make_enter_state() { + TP_Type result; + result.kind = Kind::ENTER_STATE_FUNCTION; + return result; + } + static TP_Type make_label_addr() { TP_Type result; result.kind = Kind::LABEL_ADDR; @@ -352,6 +360,7 @@ class TypeState { std::unordered_map spill_slots; TP_Type gpr_types[32]; TP_Type fpr_types[32]; + TP_Type next_state_type; std::string print_gpr_masked(u32 mask) const; TP_Type& get(const Register& r) { switch (r.get_kind()) { diff --git a/goal_src/engine/collide/collide-frag.gc b/goal_src/engine/collide/collide-frag.gc index c1ea009aa3..c1d95b5eec 100644 --- a/goal_src/engine/collide/collide-frag.gc +++ b/goal_src/engine/collide/collide-frag.gc @@ -6,21 +6,15 @@ ;; dgos: GAME, ENGINE ;; definition for method 9 of type drawable-tree-collide-fragment -(defmethod - dummy-9 - drawable-tree-collide-fragment - ((obj drawable-tree-collide-fragment)) +(defmethod login drawable-tree-collide-fragment ((obj drawable-tree-collide-fragment)) obj ) ;; definition for method 10 of type drawable-tree-collide-fragment -(defmethod - dummy-10 - drawable-tree-collide-fragment - ((obj drawable-tree-collide-fragment) (arg0 drawable) (arg1 display-frame)) +(defmethod draw drawable-tree-collide-fragment ((obj drawable-tree-collide-fragment) (arg0 drawable) (arg1 display-frame)) (when *display-render-collision* (dotimes (s4-0 (-> obj length)) - (dummy-10 (-> obj data s4-0) (-> obj data s4-0) arg1) + (draw (-> obj data s4-0) (-> obj data s4-0) arg1) ) ) 0 @@ -126,33 +120,21 @@ ) ;; definition for method 9 of type drawable-inline-array-collide-fragment -(defmethod - dummy-9 - drawable-inline-array-collide-fragment - ((obj drawable-inline-array-collide-fragment)) +(defmethod login drawable-inline-array-collide-fragment ((obj drawable-inline-array-collide-fragment)) obj ) ;; definition for method 10 of type collide-fragment -(defmethod - dummy-10 - collide-fragment - ((obj collide-fragment) (arg0 drawable) (arg1 display-frame)) +(defmethod draw collide-fragment ((obj collide-fragment) (arg0 drawable) (arg1 display-frame)) 0 ) ;; definition for method 10 of type drawable-inline-array-collide-fragment -(defmethod - dummy-10 - drawable-inline-array-collide-fragment - ((obj drawable-inline-array-collide-fragment) - (arg0 drawable) - (arg1 display-frame) - ) +(defmethod draw drawable-inline-array-collide-fragment ((obj drawable-inline-array-collide-fragment) (arg0 drawable) (arg1 display-frame)) (dotimes (s4-0 (-> obj length)) (let ((s3-0 (-> obj data s4-0))) (if (sphere-cull (-> s3-0 bsphere)) - (dummy-10 s3-0 s3-0 arg1) + (draw s3-0 s3-0 arg1) ) ) ) diff --git a/goal_src/engine/collide/collide-mesh-h.gc b/goal_src/engine/collide/collide-mesh-h.gc index 05dfe2958d..4af6ed71cf 100644 --- a/goal_src/engine/collide/collide-mesh-h.gc +++ b/goal_src/engine/collide/collide-mesh-h.gc @@ -9,7 +9,7 @@ ((vertex vector 3 :inline :offset-assert 0) (intersect vector :inline :offset-assert 48) (normal vector :inline :offset-assert 64) - (pat uint32 :offset-assert 80) + (pat pat-surface :offset-assert 80) ) :method-count-assert 9 :size-assert #x54 @@ -17,9 +17,9 @@ ) (deftype collide-mesh-tri (structure) - ((vertex-index uint8 3 :offset-assert 0) - (unused uint8 :offset-assert 3) - (pat uint32 :offset-assert 4) + ((vertex-index uint8 3 :offset-assert 0) + (unused uint8 :offset-assert 3) + (pat pat-surface :offset-assert 4) ) :pack-me :method-count-assert 9 @@ -98,7 +98,7 @@ ((vertex vector 3 :inline :offset-assert 0) (normal vector :inline :offset-assert 48) (bbox4w bounding-box4w :inline :offset-assert 64) - (pat uint32 :offset 60) + (pat pat-surface :offset 60) ) :method-count-assert 9 :size-assert #x60 diff --git a/goal_src/engine/collide/collide-shape-h.gc b/goal_src/engine/collide/collide-shape-h.gc index 3ac61960b2..d8160b7534 100644 --- a/goal_src/engine/collide/collide-shape-h.gc +++ b/goal_src/engine/collide/collide-shape-h.gc @@ -177,7 +177,7 @@ ;; sphere collision ;; the pat is stored directly here. (deftype collide-shape-prim-sphere (collide-shape-prim) - ((pat uint32 :offset-assert 72) + ((pat pat-surface :offset-assert 72) ) :method-count-assert 28 :size-assert #x4c @@ -290,7 +290,7 @@ (max-iteration-count uint8 :offset-assert 144) (nav-flags uint8 :offset-assert 145) (pad-byte uint8 2 :offset-assert 146) - (pat-ignore-mask uint32 :offset-assert 148) + (pat-ignore-mask pat-surface :offset-assert 148) (event-self basic :offset-assert 152) (event-other basic :offset-assert 156) (root-prim basic :offset-assert 160) @@ -339,9 +339,9 @@ ((rider-time uint64 :offset-assert 184) (rider-last-move vector :inline :offset-assert 192) (trans-old vector 3 :inline :offset-assert 208) - (poly-pat uint32 :offset-assert 256) - (cur-pat uint32 :offset-assert 260) - (ground-pat uint32 :offset-assert 264) + (poly-pat pat-surface :offset-assert 256) + (cur-pat pat-surface :offset-assert 260) + (ground-pat pat-surface :offset-assert 264) (status uint64 :offset-assert 272) (old-status uint64 :offset-assert 280) (prev-status uint64 :offset-assert 288) @@ -402,7 +402,7 @@ "Allocate a new sphere primitive" (let ((obj (the collide-shape-prim-sphere ((method-of-type collide-shape-prim new) allocation type-to-make cshape prim-id (size-of collide-shape-prim-mesh))))) - (set! (-> obj pat) #x10) + (set! (-> obj pat) (new 'static 'pat-surface :mode (pat-mode obstacle))) (set! (-> obj prim-core prim-type) -1) obj ) @@ -444,7 +444,7 @@ (defmethod asize-of collide-shape-prim-group ((obj collide-shape-prim-group)) "How big is this in memory?" (the-as int - (+ (-> obj type size) (the-as uint (shl (+ (-> obj allocated-prims) -1) 2))) + (+ (-> obj type size) (the-as uint (* (+ (-> obj allocated-prims) -1) 4))) ) ) @@ -461,12 +461,20 @@ (set! (-> obj root-prim) #f) ;; add a special ignore mask for the camera vs other things. - (case (-> proc type symbol) - (('camera) - (set! (-> obj pat-ignore-mask) #x2) - (set! (-> obj pat-ignore-mask) #x1) + (case (-> proc type symbol) + (('camera) + (set! + (-> obj pat-ignore-mask) + (new 'static 'pat-surface :skip #x2 :nocamera #x1) ) ) + (else + (set! + (-> obj pat-ignore-mask) + (new 'static 'pat-surface :skip #x1 :noentity #x1) + ) + ) + ) ;; reset transformation to the origin. (set! (-> obj trans w) 1.0) diff --git a/goal_src/engine/collide/collide-target-h.gc b/goal_src/engine/collide/collide-target-h.gc index 5e9cea9072..bc1b5ccd4e 100644 --- a/goal_src/engine/collide/collide-target-h.gc +++ b/goal_src/engine/collide/collide-target-h.gc @@ -19,7 +19,7 @@ (surface-normal vector :inline :offset-assert 80) (time uint64 :offset-assert 96) (status uint64 :offset-assert 104) - (pat uint32 :offset-assert 112) + (pat pat-surface :offset-assert 112) (reaction-flag uint32 :offset-assert 116) ) :method-count-assert 10 diff --git a/goal_src/engine/draw/drawable-actor-h.gc b/goal_src/engine/draw/drawable-actor-h.gc index 65e416c612..182aa3fb8d 100644 --- a/goal_src/engine/draw/drawable-actor-h.gc +++ b/goal_src/engine/draw/drawable-actor-h.gc @@ -27,6 +27,6 @@ ) -(defmethod dummy-10 drawable-tree-actor ((obj _type_) (arg0 drawable) (arg1 display-frame)) +(defmethod draw drawable-tree-actor ((obj _type_) (arg0 drawable) (arg1 display-frame)) 0 ) diff --git a/goal_src/engine/draw/drawable-ambient-h.gc b/goal_src/engine/draw/drawable-ambient-h.gc index daec1beeb3..bccfc24f5f 100644 --- a/goal_src/engine/draw/drawable-ambient-h.gc +++ b/goal_src/engine/draw/drawable-ambient-h.gc @@ -31,7 +31,7 @@ :flag-assert #x1200000044 ) -(defmethod dummy-10 drawable-tree-ambient ((obj _type_) (arg0 drawable) (arg1 display-frame)) +(defmethod draw drawable-tree-ambient ((obj _type_) (arg0 drawable) (arg1 display-frame)) 0 ) diff --git a/goal_src/engine/draw/drawable-h.gc b/goal_src/engine/draw/drawable-h.gc index 48514eb616..e65ee8af7f 100644 --- a/goal_src/engine/draw/drawable-h.gc +++ b/goal_src/engine/draw/drawable-h.gc @@ -17,8 +17,8 @@ :size-assert #x20 :flag-assert #x1200000020 (:methods - (dummy-9 (_type_) _type_ 9) ;; probably login or init. - (dummy-10 (_type_ drawable display-frame) int 10) ;; display-frame is from the method inspect tool + (login (_type_) _type_ 9) ;; probably login or init. + (draw (_type_ drawable display-frame) int 10) ;; display-frame is from the method inspect tool (dummy-11 (_type_ int) none 11) ; int - length (dummy-12 (_type_ int) none 12) ; int - length (dummy-13 (_type_ int) none 13) ; int - length @@ -37,9 +37,5 @@ :flag-assert #x1200000024 ) -;; NOTE - I'm guessing there was a define-extern earlier in the build process -;; This is actually set in process-drawable.gc, but it's used by files earlier in the process -;; assuming (state process-drawable) -(define-extern process-drawable-art-error state) - (declare-type process-drawable process) +(define-extern process-drawable-art-error (state string process-drawable)) \ No newline at end of file diff --git a/goal_src/engine/draw/drawable-inline-array.gc b/goal_src/engine/draw/drawable-inline-array.gc index 60ef6c31f2..6ebb628f99 100644 --- a/goal_src/engine/draw/drawable-inline-array.gc +++ b/goal_src/engine/draw/drawable-inline-array.gc @@ -11,14 +11,11 @@ (-> obj length) ) -(defmethod dummy-9 drawable-inline-array ((obj drawable-inline-array)) +(defmethod login drawable-inline-array ((obj drawable-inline-array)) obj ) -(defmethod - dummy-10 - drawable-inline-array - ((obj drawable-inline-array) (arg0 drawable) (arg1 display-frame)) +(defmethod draw drawable-inline-array ((obj drawable-inline-array) (arg0 drawable) (arg1 display-frame)) 0 ) diff --git a/goal_src/engine/game/fact-h.gc b/goal_src/engine/game/fact-h.gc index b43b2dae1d..5c44304a10 100644 --- a/goal_src/engine/game/fact-h.gc +++ b/goal_src/engine/game/fact-h.gc @@ -149,58 +149,56 @@ the entity of the process automatically. Will attempt to read pickup-type and amount from the entity, but if this fails will use the values in the arguments" (local-vars (tag res-tag)) - (with-pp - ;; allocate. - (let ((obj (object-new allocation type-to-make (the-as int (-> type-to-make size))))) - (let ((ent (the res-lump (-> proc entity)))) - ;; confirm that we allocated successfully - (when (zero? obj) - (go process-drawable-art-error "memory") - ;; this is already true... - (set! obj (the-as fact-info 0)) - (goto cfg-10) - ) - - ;; remember who we belong to - (set! (-> obj process) proc) - - ;; eco may override the pickup type and amount, so try to get this. - (let ((v1-6 (res-lump-data ent 'eco-info (pointer int32) :tag-ptr (& tag) :time 0.0))) - (cond - (v1-6 - ;; eco-info lookup succeeded, - (let ((a0-6 (-> tag elt-count))) - ;; first thing is pickup type, it's always there - (set! (-> obj pickup-type) (the-as pickup-type (-> v1-6 0))) - ;; pickup amount is optional. - (set! pkup-amount (if (< (the-as uint 1) (the-as uint a0-6)) - (the float (-> v1-6 1)) - pkup-amount - ) - ) - ) - (set! (-> obj pickup-amount) pkup-amount) - ) - (else - ;; no eco-info, use stuff from args - (set! (-> obj pickup-type) pkup-type) - (set! (-> obj pickup-amount) pkup-amount) - ) - ) - ) - - ;; read the options - (set! (-> obj options) (res-lump-value ent 'options uint)) - - ;; TODO - some enum bitfield here. - (if (nonzero? (logand #x80200 (the-as int (-> obj options)))) - (set! (-> obj fade-time) (the-as uint (the int (* 300.0 (res-lump-float ent 'timeout))))) - ) + ;; allocate. + (let ((obj (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (let ((ent (the res-lump (-> proc entity)))) + ;; confirm that we allocated successfully + (when (zero? obj) + (go process-drawable-art-error "memory") + ;; this is already true... + (set! obj (the-as fact-info 0)) + (goto cfg-10) ) - (label cfg-10) - obj + ;; remember who we belong to + (set! (-> obj process) proc) + + ;; eco may override the pickup type and amount, so try to get this. + (let ((v1-6 (res-lump-data ent 'eco-info (pointer int32) :tag-ptr (& tag) :time 0.0))) + (cond + (v1-6 + ;; eco-info lookup succeeded, + (let ((a0-6 (-> tag elt-count))) + ;; first thing is pickup type, it's always there + (set! (-> obj pickup-type) (the-as pickup-type (-> v1-6 0))) + ;; pickup amount is optional. + (set! pkup-amount (if (< (the-as uint 1) (the-as uint a0-6)) + (the float (-> v1-6 1)) + pkup-amount + ) + ) + ) + (set! (-> obj pickup-amount) pkup-amount) + ) + (else + ;; no eco-info, use stuff from args + (set! (-> obj pickup-type) pkup-type) + (set! (-> obj pickup-amount) pkup-amount) + ) + ) + ) + + ;; read the options + (set! (-> obj options) (res-lump-value ent 'options uint)) + + ;; TODO - some enum bitfield here. + (if (nonzero? (logand #x80200 (the-as int (-> obj options)))) + (set! (-> obj fade-time) (the-as uint (the int (* 300.0 (res-lump-float ent 'timeout))))) + ) ) + + (label cfg-10) + obj ) ) diff --git a/goal_src/engine/game/game-h.gc b/goal_src/engine/game/game-h.gc index 31438ff196..a59d48eb93 100644 --- a/goal_src/engine/game/game-h.gc +++ b/goal_src/engine/game/game-h.gc @@ -33,11 +33,21 @@ ;; inherited inspect of process (:methods (deactivate (_type_) none 10) - (dummy-14 (_type_ skeleton-group object) none 14) + ;; add-art? + (dummy-14 (_type_ skeleton-group object) none 14) ;; I think skeleton group is too specific. + + ;; load skeleton group? (dummy-15 (_type_ string object) _type_ 15) + + ;; apply velocity offset? + ;; probably a transformq (dummy-16 (_type_ int (inline-array vector) vector) collide-shape 16) + + ;; something with cspace (dummy-17 (_type_) none 17) (dummy-18 (_type_) symbol 18) + + ;; something with animation (dummy-19 (_type_) none 19) ) ) diff --git a/goal_src/engine/geometry/vol-h.gc b/goal_src/engine/geometry/vol-h.gc index 16e3ed1f25..d6684f194e 100644 --- a/goal_src/engine/geometry/vol-h.gc +++ b/goal_src/engine/geometry/vol-h.gc @@ -52,127 +52,93 @@ ;; INFO: Return type mismatch object vs vol-control. ;; Used lq/sq (defmethod new vol-control ((allocation symbol) (type-to-make type) (arg0 process-drawable)) - (with-pp - (let ((gp-0 (the-as object (object-new allocation type-to-make (the-as int (-> type-to-make size)))))) - (if (zero? (the-as vol-control gp-0)) - (begin - (let ((t9-1 (the-as (function object object) enter-state)) - (a0-1 "memory") - ) - (set! (-> pp next-state) process-drawable-art-error) - (t9-1 a0-1) - ) - (set! gp-0 0) - (goto cfg-13) + (let ((gp-0 (the-as object (object-new allocation type-to-make (the-as int (-> type-to-make size)))))) + (when (zero? (the-as vol-control gp-0)) + (go process-drawable-art-error "memory") + (set! gp-0 0) + (goto cfg-13) + ) + (set! (-> (the-as vol-control gp-0) process) arg0) + (let* ((s5-1 (the-as res-lump (-> (the-as vol-control gp-0) process entity))) + (s4-0 (-> (lookup-tag-idx (the-as entity s5-1) 'vol 'exact 0.0) lo)) + ) + (when (>= (the-as int s4-0) 0) + (let ((s3-0 (the-as uint s4-0)) + (s2-0 (-> s5-1 tag s4-0)) + ) + 0 + (while (= (-> s2-0 name) (-> s5-1 tag s4-0 name)) + (let + ((v1-12 + (make-property-data + s5-1 + 0.0 + (the-as res-tag-pair s3-0) + (the-as pointer #f) ) ) - (set! (-> (the-as vol-control gp-0) process) arg0) - (let* ((s5-1 (-> (the-as vol-control gp-0) process entity)) - (s4-0 - (-> - ((method-of-type res-lump lookup-tag-idx) - (the-as res-lump s5-1) - 'vol - 'exact - 0.0 - ) - lo - ) - ) - ) - (when (>= s4-0 0) - (let ((s3-0 s4-0) - (s2-0 (-> (-> (the-as res-lump s5-1) tag) s4-0)) - ) - (let ((v1-10 0)) - ) - (while (= (-> s2-0 name) (-> (-> (the-as res-lump s5-1) tag) s4-0 name)) - (let - ((v1-12 - (make-property-data - (the-as res-lump s5-1) - 0.0 - (the-as res-tag-pair s3-0) - (the-as pointer #f) - ) - ) - (a0-8 - (-> - (the-as vol-control gp-0) - pos-vol - (-> (the-as vol-control gp-0) pos-vol-count) - ) - ) - ) - (set! (-> a0-8 num-planes) (the-as int (-> s2-0 elt-count))) - (set! (-> a0-8 plane) (the-as uint v1-12)) - ) - (set! - (-> (the-as vol-control gp-0) pos-vol-count) - (+ (-> (the-as vol-control gp-0) pos-vol-count) 1) - ) - (+! s3-0 1) - (set! s2-0 (-> (-> (the-as res-lump s5-1) tag) s3-0)) - ) - ) + (a0-8 + (-> + (the-as vol-control gp-0) + pos-vol + (-> (the-as vol-control gp-0) pos-vol-count) + ) ) + ) + (set! (-> a0-8 num-planes) (the-as int (-> s2-0 elt-count))) + (set! (-> a0-8 plane) (the-as uint v1-12)) ) - (let* ((s5-2 (-> (the-as vol-control gp-0) process entity)) - (s4-1 - (-> - ((method-of-type res-lump lookup-tag-idx) - (the-as res-lump s5-2) - 'cutoutvol - 'exact - 0.0 - ) - lo - ) - ) - ) - (when (>= s4-1 0) - (let ((s3-1 s4-1) - (s2-1 (-> (-> (the-as res-lump s5-2) tag) s4-1)) - ) - (let ((v1-29 0)) - ) - (while (= (-> s2-1 name) (-> (-> (the-as res-lump s5-2) tag) s4-1 name)) - (let - ((v1-31 - (make-property-data - (the-as res-lump s5-2) - 0.0 - (the-as res-tag-pair s3-1) - (the-as pointer #f) - ) - ) - (a0-19 - (-> - (the-as vol-control gp-0) - neg-vol - (-> (the-as vol-control gp-0) neg-vol-count) - ) - ) - ) - (set! (-> a0-19 num-planes) (the-as int (-> s2-1 elt-count))) - (set! (-> a0-19 plane) (the-as uint v1-31)) - ) - (set! - (-> (the-as vol-control gp-0) neg-vol-count) - (+ (-> (the-as vol-control gp-0) neg-vol-count) 1) - ) - (+! s3-1 1) - (set! s2-1 (-> (-> (the-as res-lump s5-2) tag) s3-1)) - ) - ) - ) - ) - (label cfg-13) - (the-as vol-control gp-0) + (+! (-> (the-as vol-control gp-0) pos-vol-count) 1) + (+! s3-0 1) + (set! s2-0 (-> s5-1 tag s3-0)) + ) ) + ) ) + (let* ((s5-2 (the-as res-lump (-> (the-as vol-control gp-0) process entity))) + (s4-1 + (-> (lookup-tag-idx (the-as entity s5-2) 'cutoutvol 'exact 0.0) lo) + ) + ) + (when (>= (the-as int s4-1) 0) + (let ((s3-1 (the-as uint s4-1)) + (s2-1 (-> s5-2 tag s4-1)) + ) + 0 + (while (= (-> s2-1 name) (-> s5-2 tag s4-1 name)) + (let + ((v1-31 + (make-property-data + s5-2 + 0.0 + (the-as res-tag-pair s3-1) + (the-as pointer #f) + ) + ) + (a0-19 + (-> + (the-as vol-control gp-0) + neg-vol + (-> (the-as vol-control gp-0) neg-vol-count) + ) + ) + ) + (set! (-> a0-19 num-planes) (the-as int (-> s2-1 elt-count))) + (set! (-> a0-19 plane) (the-as uint v1-31)) + ) + (+! (-> (the-as vol-control gp-0) neg-vol-count) 1) + (+! s3-1 1) + (set! s2-1 (-> s5-2 tag s3-1)) + ) + ) + ) + ) + (label cfg-13) + (the-as vol-control gp-0) + ) ) + ;; definition for method 11 of type vol-control (defmethod TODO-RENAME-11 vol-control ((obj vol-control)) (and *display-vol-marks* (nonzero? (logand (-> obj flags) 1))) diff --git a/goal_src/engine/gfx/lights.gc b/goal_src/engine/gfx/lights.gc index a4ca0e5fb4..62ce671ca5 100644 --- a/goal_src/engine/gfx/lights.gc +++ b/goal_src/engine/gfx/lights.gc @@ -40,12 +40,9 @@ out ) -(defun light-group-process! ((lights vu-lights) (group light-group) (vector-1 vector) (vector-2 vector)) - "Unused - Seems to do effectively nothing" - ;; NOTE - dead code - ;; (let ((f0-0 (rotate-y<-vector+vector arg3 arg2))) - ;; ) - (vu-lights<-light-group! lights group) +(defun light-group-process! ((arg0 vu-lights) (arg1 light-group) (arg2 vector) (arg3 vector)) + (rotate-y<-vector+vector arg3 arg2) + (vu-lights<-light-group! arg0 arg1) (none) ) diff --git a/goal_src/engine/level/level.gc b/goal_src/engine/level/level.gc index 36be64cba9..4868cd9e7d 100644 --- a/goal_src/engine/level/level.gc +++ b/goal_src/engine/level/level.gc @@ -549,7 +549,7 @@ (1+! (-> level-login-state elts)) ) (else - (dummy-9 (-> current-drawable data idx-in-drawable)) + (login (-> current-drawable data idx-in-drawable)) ) ) ) @@ -561,7 +561,7 @@ (1+! (-> level-login-state elts)) ) (else - (dummy-9 (the-as drawable current-drawable)) + (login (the-as drawable current-drawable)) ) ) ) @@ -594,7 +594,7 @@ ((< (the-as int current-login-pos) (-> (the-as drawable-inline-array-tfrag s1-1) length)) (dotimes (s0-0 200) (when (< (the-as int current-login-pos) (-> (the-as drawable-inline-array-tfrag s1-1) length)) - (dummy-9 (-> (the-as drawable-inline-array-tfrag s1-1) data (the-as uint current-login-pos))) + (login (-> (the-as drawable-inline-array-tfrag s1-1) data (the-as uint current-login-pos))) (1+! current-login-pos) ) ) @@ -616,7 +616,7 @@ (dotimes (sv-32 4) (let ((a0-28 (-> sv-16 geometry sv-32))) (if (nonzero? a0-28) - (dummy-9 a0-28) + (login a0-28) ) ) ) diff --git a/goal_src/engine/target/joint-mod-h.gc b/goal_src/engine/target/joint-mod-h.gc index 2f0e4fcd4f..477544432b 100644 --- a/goal_src/engine/target/joint-mod-h.gc +++ b/goal_src/engine/target/joint-mod-h.gc @@ -177,19 +177,15 @@ (defmethod set-trs! joint-mod ((obj joint-mod) (trans vector) (rot quaternion) (scale vector)) "Set the translation, rotation, and scale." - (when trans - (let ((v1-1 (-> obj trans))) - (set! (-> v1-1 quad) (-> trans quad)) - ) - ) + (if trans + (set! (-> obj trans quad) (-> trans quad)) + ) (if rot - (quaternion-copy! (-> obj quat) rot) - ) - (when scale - (let ((v1-5 (-> obj scale))) - (set! (-> v1-5 quad) (-> scale quad)) - ) - ) + (quaternion-copy! (-> obj quat) rot) + ) + (if scale + (set! (-> obj scale quad) (-> scale quad)) + ) (none) ) @@ -203,9 +199,7 @@ ;; how far are we from the target? (let ((distance (vector-vector-distance (-> obj process root trans) target-trans))) (set! (-> obj shutting-down?) #f) - (let ((v1-6 (-> obj target))) - (set! (-> v1-6 quad) (-> target-trans quad)) - ) + (set! (-> obj target quad) (-> target-trans quad)) (if (< distance (-> obj max-dist)) (set! (-> obj blend) 1.0) ;; in range, set blend to 1.0 to start (set! (-> obj blend) 0.0) ;; not in range, set blend to 0.0 to disable. @@ -259,17 +253,16 @@ ;; success! we consider this a noticed and remember when (set! (-> obj notice-time) (-> *display* base-frame-counter)) ;; and update the look at data - (let ((ppointer (the-as (pointer process) - (if proc - (the-as (pointer process) (-> proc ppointer)) - ) - ) - ) - ) - (set! (-> last-try-to-look-at-data who) - (new 'static 'handle :process ppointer :pid (-> ppointer 0 pid)) - ) + (let ((v1-12 (if proc + (-> proc ppointer) + ) ) + ) + (set! + (-> last-try-to-look-at-data who) + (new 'static 'handle :process v1-12 :pid (-> v1-12 0 pid)) + ) + ) ;; not sure what these are yet. (if (< (-> last-try-to-look-at-data vert) (-> enemy-facts cam-vert)) (set! (-> last-try-to-look-at-data vert) (-> enemy-facts cam-vert)) @@ -302,9 +295,7 @@ (set-mode! obj (joint-mod-handler-mode look-at)) ) ;; set our target. - (let ((v1-37 (-> obj target))) - (set! (-> v1-37 quad) (-> target-trans quad)) - ) + (set! (-> obj target quad) (-> target-trans quad)) ;; activate us. (set! (-> obj blend) 1.0) (set! (-> obj shutting-down?) #f) @@ -695,38 +686,33 @@ ) ) -;; todo needs better vector-dot stuff (defun joint-mod-wheel-callback ((arg0 cspace) (arg1 transformq)) - (local-vars (f0-3 float)) (let ((s4-0 (the-as joint-mod-wheel (-> arg0 param1)))) - (let ((v1-1 (-> s4-0 process root)) - (s1-0 (new-stack-vector0)) - (s3-0 (new-stack-vector0)) - (s2-0 (new-stack-vector0)) - ) - (let ((f0-0 0.0)) - ) - (let ((f0-1 0.0)) - ) - (vector-z-quaternion! s2-0 (-> v1-1 quat)) - (vector<-cspace! s1-0 arg0) - (vector-! s3-0 s1-0 (-> s4-0 last-position)) - (set! (-> s4-0 last-position quad) (-> s1-0 quad)) - (set! f0-3 (vector-dot s2-0 s3-0)) - ) - (let* ((f0-4 f0-3) - (f1-1 65536.0) - (f2-2 (* 6.28318 (-> s4-0 wheel-radius))) - (f0-5 (* (* f1-1 (/ 1.0 f2-2)) f0-4)) + (let ((v1-1 (-> s4-0 process root)) + (s1-0 (new-stack-vector0)) + (s3-0 (new-stack-vector0)) + (s2-0 (new-stack-vector0)) + ) + 0.0 + 0.0 + (vector-z-quaternion! s2-0 (-> v1-1 quat)) + (vector<-cspace! s1-0 arg0) + (vector-! s3-0 s1-0 (-> s4-0 last-position)) + (set! (-> s4-0 last-position quad) (-> s1-0 quad)) + (let* ((f0-3 (vector-dot s2-0 s3-0)) + (f1-0 65536.0) + (f2-1 (* 6.28318 (-> s4-0 wheel-radius))) + (f0-4 (* (* f1-0 (/ 1.0 f2-1)) f0-3)) ) - (set! (-> s4-0 angle) (+ (-> s4-0 angle) f0-5)) - ) - (quaternion-vector-angle! - (-> arg1 quat) - (-> *joint-axis-vectors* (-> s4-0 wheel-axis)) - (-> s4-0 angle) + (+! (-> s4-0 angle) f0-4) ) ) + (quaternion-vector-angle! + (-> arg1 quat) + (-> *joint-axis-vectors* (-> s4-0 wheel-axis)) + (-> s4-0 angle) + ) + ) (cspace<-parented-transformq-joint! arg0 arg1) (none) ) diff --git a/goal_src/engine/target/pat-h.gc b/goal_src/engine/target/pat-h.gc index 0a03788be6..11ca7157e8 100644 --- a/goal_src/engine/target/pat-h.gc +++ b/goal_src/engine/target/pat-h.gc @@ -5,6 +5,9 @@ ;; name in dgo: pat-h ;; dgos: GAME, ENGINE +;; The "pat" system is used to classify terrain. +;; These are likely stored as part of the level data, so they are quite compact. + (defenum pat-material :type uint8 (stone) diff --git a/goal_src/engine/target/surface-h.gc b/goal_src/engine/target/surface-h.gc index 22c7cfbb5b..ec2cafc7dc 100644 --- a/goal_src/engine/target/surface-h.gc +++ b/goal_src/engine/target/surface-h.gc @@ -105,13 +105,21 @@ ;; if there is no good hook, set it to nothing. (dotimes (v1-3 4) (set! (-> dst hook v1-3) - (if (and (nonzero? (-> src1 hook v1-3)) (!= (-> src1 hook v1-3) nothing)) - (-> src1 hook v1-3) - (if (and (nonzero? (-> src0 hook v1-3)) (!= (-> src0 hook v1-3) nothing)) - (-> src0 hook v1-3) - nothing + (cond + ((and (nonzero? (-> src1 hook v1-3)) + (!= (-> src1 hook v1-3) nothing) ) - ) + (-> src1 hook v1-3) + ) + ((and (nonzero? (-> src0 hook v1-3)) + (!= (-> src0 hook v1-3) nothing) + ) + (-> src0 hook v1-3) + ) + (else + nothing + ) + ) ) ) diff --git a/goal_src/kernel-defs.gc b/goal_src/kernel-defs.gc index 4c411c99ac..5ad5df8681 100644 --- a/goal_src/kernel-defs.gc +++ b/goal_src/kernel-defs.gc @@ -227,13 +227,15 @@ (death 24) ;; 16777216 ) +(declare-type process basic) + (deftype process-tree (basic) ((name basic :offset-assert 4) (mask process-mask :offset-assert 8) (parent (pointer process-tree) :offset-assert 12) (brother (pointer process-tree) :offset-assert 16) (child (pointer process-tree) :offset-assert 20) - (ppointer (pointer process-tree) :offset-assert 24) + (ppointer (pointer process) :offset-assert 24) (self process-tree :offset-assert 28) ) diff --git a/goal_src/kernel/gkernel-h.gc b/goal_src/kernel/gkernel-h.gc index 14eb48d8fd..9c2fa5f505 100644 --- a/goal_src/kernel/gkernel-h.gc +++ b/goal_src/kernel/gkernel-h.gc @@ -204,7 +204,7 @@ (parent (pointer process-tree) :offset-assert 12) (brother (pointer process-tree) :offset-assert 16) (child (pointer process-tree) :offset-assert 20) - (ppointer (pointer process-tree) :offset-assert 24) + (ppointer (pointer process) :offset-assert 24) (self process-tree :offset-assert 28) ) diff --git a/goal_src/kernel/gkernel.gc b/goal_src/kernel/gkernel.gc index a5f7334fa7..9e2535c178 100644 --- a/goal_src/kernel/gkernel.gc +++ b/goal_src/kernel/gkernel.gc @@ -371,7 +371,7 @@ (set! (-> obj child) #f) (set! (-> obj self) obj) - (set! (-> obj ppointer) (&-> obj self)) + (set! (-> obj ppointer) (the (pointer process) (&-> obj self))) obj ) ) @@ -436,7 +436,7 @@ ;; setup reference stuff. (set! (-> obj self) obj) - (set! (-> obj ppointer) (&-> obj self)) + (set! (-> obj ppointer) (the (pointer process) (&-> obj self))) obj ) ) @@ -910,7 +910,7 @@ (set! (-> obj child) #f) ;; setup ref (set! (-> obj self) obj) - (set! (-> obj ppointer) (&-> obj self)) + (set! (-> obj ppointer) (the (pointer process) (&-> obj self))) (dotimes (i count) ;; create each process @@ -994,7 +994,7 @@ (set! (-> obj child) #f) (set! (-> obj self) obj) - (set! (-> obj ppointer) (&-> obj self)) + (set! (-> obj ppointer) (the (pointer process) (&-> obj self))) ;; initialize each process handle ;; build them into a linked list of null-process diff --git a/test/decompiler/reference/decompiler-macros.gc b/test/decompiler/reference/decompiler-macros.gc index 258c10976d..6778c18b22 100644 --- a/test/decompiler/reference/decompiler-macros.gc +++ b/test/decompiler/reference/decompiler-macros.gc @@ -205,4 +205,11 @@ (set! (-> vec y) ,yv) (set! (-> vec z) ,zv) (set! (-> vec w) ,wv))) - ) \ No newline at end of file + ) + +(defmacro go (next-state &rest args) + `(with-pp + (set! (-> pp next-state) ,next-state) + ((the (function _varargs_ object) enter-state) ,@args) + ) + ) \ No newline at end of file diff --git a/test/decompiler/reference/engine/anim/aligner-h_REF.gc b/test/decompiler/reference/engine/anim/aligner-h_REF.gc index adfa6b29ac..952034830d 100644 --- a/test/decompiler/reference/engine/anim/aligner-h_REF.gc +++ b/test/decompiler/reference/engine/anim/aligner-h_REF.gc @@ -53,12 +53,7 @@ ) ) (when (zero? obj) - (let ((t9-1 (the-as (function object object) enter-state)) - (a0-1 "memory") - ) - (set! (-> self next-state) process-drawable-art-error) - (t9-1 a0-1) - ) + (go process-drawable-art-error "memory") (return (the-as align-control 0)) ) (set! (-> obj process) (the-as process-drawable arg0)) diff --git a/test/decompiler/reference/engine/collide/collide-frag_REF.gc b/test/decompiler/reference/engine/collide/collide-frag_REF.gc index c7a281be76..3039343eae 100644 --- a/test/decompiler/reference/engine/collide/collide-frag_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-frag_REF.gc @@ -3,7 +3,7 @@ ;; definition for method 9 of type drawable-tree-collide-fragment (defmethod - dummy-9 + login drawable-tree-collide-fragment ((obj drawable-tree-collide-fragment)) obj @@ -11,12 +11,12 @@ ;; definition for method 10 of type drawable-tree-collide-fragment (defmethod - dummy-10 + draw drawable-tree-collide-fragment ((obj drawable-tree-collide-fragment) (arg0 drawable) (arg1 display-frame)) (when *display-render-collision* (dotimes (s4-0 (-> obj length)) - (dummy-10 (-> obj data s4-0) (-> obj data s4-0) arg1) + (draw (-> obj data s4-0) (-> obj data s4-0) arg1) ) ) 0 @@ -102,7 +102,7 @@ ;; definition for method 9 of type drawable-inline-array-collide-fragment (defmethod - dummy-9 + login drawable-inline-array-collide-fragment ((obj drawable-inline-array-collide-fragment)) obj @@ -110,7 +110,7 @@ ;; definition for method 10 of type collide-fragment (defmethod - dummy-10 + draw collide-fragment ((obj collide-fragment) (arg0 drawable) (arg1 display-frame)) 0 @@ -118,7 +118,7 @@ ;; definition for method 10 of type drawable-inline-array-collide-fragment (defmethod - dummy-10 + draw drawable-inline-array-collide-fragment ((obj drawable-inline-array-collide-fragment) (arg0 drawable) @@ -127,7 +127,7 @@ (dotimes (s4-0 (-> obj length)) (let ((s3-0 (-> obj data s4-0))) (if (sphere-cull (-> s3-0 bsphere)) - (dummy-10 s3-0 s3-0 arg1) + (draw s3-0 s3-0 arg1) ) ) ) diff --git a/test/decompiler/reference/engine/collide/collide-mesh-h_REF.gc b/test/decompiler/reference/engine/collide/collide-mesh-h_REF.gc index 364cff33c6..e75c44497b 100644 --- a/test/decompiler/reference/engine/collide/collide-mesh-h_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-mesh-h_REF.gc @@ -3,10 +3,10 @@ ;; definition of type collide-tri-result (deftype collide-tri-result (structure) - ((vertex vector 3 :inline :offset-assert 0) - (intersect vector :inline :offset-assert 48) - (normal vector :inline :offset-assert 64) - (pat uint32 :offset-assert 80) + ((vertex vector 3 :inline :offset-assert 0) + (intersect vector :inline :offset-assert 48) + (normal vector :inline :offset-assert 64) + (pat pat-surface :offset-assert 80) ) :method-count-assert 9 :size-assert #x54 @@ -25,9 +25,9 @@ ;; definition of type collide-mesh-tri (deftype collide-mesh-tri (structure) - ((vertex-index uint8 3 :offset-assert 0) - (unused uint8 :offset-assert 3) - (pat uint32 :offset-assert 4) + ((vertex-index uint8 3 :offset-assert 0) + (unused uint8 :offset-assert 3) + (pat pat-surface :offset-assert 4) ) :pack-me :method-count-assert 9 @@ -117,7 +117,7 @@ ((vertex vector 3 :inline :offset-assert 0) (normal vector :inline :offset-assert 48) (bbox4w bounding-box4w :inline :offset-assert 64) - (pat uint32 :offset 60) + (pat pat-surface :offset 60) ) :method-count-assert 9 :size-assert #x60 diff --git a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc index 4f33a22fc8..8533f1126c 100644 --- a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc @@ -283,7 +283,7 @@ ;; definition of type collide-shape-prim-sphere (deftype collide-shape-prim-sphere (collide-shape-prim) - ((pat uint32 :offset-assert 72) + ((pat pat-surface :offset-assert 72) ) :method-count-assert 28 :size-assert #x4c @@ -389,17 +389,17 @@ ;; definition of type collide-shape (deftype collide-shape (trsqv) - ((process process :offset-assert 140) - (max-iteration-count uint8 :offset-assert 144) - (nav-flags uint8 :offset-assert 145) - (pad-byte uint8 2 :offset-assert 146) - (pat-ignore-mask uint32 :offset-assert 148) - (event-self basic :offset-assert 152) - (event-other basic :offset-assert 156) - (root-prim basic :offset-assert 160) - (riders basic :offset-assert 164) - (backup-collide-as uint64 :offset-assert 168) - (backup-collide-with uint64 :offset-assert 176) + ((process process :offset-assert 140) + (max-iteration-count uint8 :offset-assert 144) + (nav-flags uint8 :offset-assert 145) + (pad-byte uint8 2 :offset-assert 146) + (pat-ignore-mask pat-surface :offset-assert 148) + (event-self basic :offset-assert 152) + (event-other basic :offset-assert 156) + (root-prim basic :offset-assert 160) + (riders basic :offset-assert 164) + (backup-collide-as uint64 :offset-assert 168) + (backup-collide-with uint64 :offset-assert 176) ) :method-count-assert 56 :size-assert #xb8 @@ -472,31 +472,31 @@ ;; definition of type collide-shape-moving (deftype collide-shape-moving (collide-shape) - ((rider-time uint64 :offset-assert 184) - (rider-last-move vector :inline :offset-assert 192) - (trans-old vector 3 :inline :offset-assert 208) - (poly-pat uint32 :offset-assert 256) - (cur-pat uint32 :offset-assert 260) - (ground-pat uint32 :offset-assert 264) - (status uint64 :offset-assert 272) - (old-status uint64 :offset-assert 280) - (prev-status uint64 :offset-assert 288) - (reaction-flag uint32 :offset-assert 296) - (reaction basic :offset-assert 300) - (no-reaction basic :offset-assert 304) - (local-normal vector :inline :offset-assert 320) - (surface-normal vector :inline :offset-assert 336) - (poly-normal vector :inline :offset-assert 352) - (ground-poly-normal vector :inline :offset-assert 368) - (ground-touch-point vector :inline :offset-assert 384) - (shadow-pos vector :inline :offset-assert 400) - (ground-impact-vel meters :offset-assert 416) - (surface-angle float :offset-assert 420) - (poly-angle float :offset-assert 424) - (touch-angle float :offset-assert 428) - (coverage float :offset-assert 432) - (dynam basic :offset-assert 436) - (surf basic :offset-assert 440) + ((rider-time uint64 :offset-assert 184) + (rider-last-move vector :inline :offset-assert 192) + (trans-old vector 3 :inline :offset-assert 208) + (poly-pat pat-surface :offset-assert 256) + (cur-pat pat-surface :offset-assert 260) + (ground-pat pat-surface :offset-assert 264) + (status uint64 :offset-assert 272) + (old-status uint64 :offset-assert 280) + (prev-status uint64 :offset-assert 288) + (reaction-flag uint32 :offset-assert 296) + (reaction basic :offset-assert 300) + (no-reaction basic :offset-assert 304) + (local-normal vector :inline :offset-assert 320) + (surface-normal vector :inline :offset-assert 336) + (poly-normal vector :inline :offset-assert 352) + (ground-poly-normal vector :inline :offset-assert 368) + (ground-touch-point vector :inline :offset-assert 384) + (shadow-pos vector :inline :offset-assert 400) + (ground-impact-vel meters :offset-assert 416) + (surface-angle float :offset-assert 420) + (poly-angle float :offset-assert 424) + (touch-angle float :offset-assert 428) + (coverage float :offset-assert 432) + (dynam basic :offset-assert 436) + (surf basic :offset-assert 440) ) :method-count-assert 65 :size-assert #x1bc @@ -615,7 +615,7 @@ ) ) ) - (set! (-> obj pat) (the-as uint 16)) + (set! (-> obj pat) (new 'static 'pat-surface :mode (pat-mode obstacle))) (set! (-> obj prim-core prim-type) -1) (the-as collide-shape-prim-sphere obj) ) @@ -728,10 +728,16 @@ (set! (-> obj root-prim) #f) (case (-> proc type symbol) (('camera) - (set! (-> obj pat-ignore-mask) (the-as uint 2)) + (set! + (-> obj pat-ignore-mask) + (new 'static 'pat-surface :skip #x2 :nocamera #x1) + ) ) (else - (set! (-> obj pat-ignore-mask) (the-as uint 1)) + (set! + (-> obj pat-ignore-mask) + (new 'static 'pat-surface :skip #x1 :noentity #x1) + ) ) ) (set! (-> obj trans w) 1.0) diff --git a/test/decompiler/reference/engine/collide/collide-target-h_REF.gc b/test/decompiler/reference/engine/collide/collide-target-h_REF.gc index 4e674ada5c..e52de0bdb5 100644 --- a/test/decompiler/reference/engine/collide/collide-target-h_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-target-h_REF.gc @@ -3,16 +3,16 @@ ;; definition of type collide-history (deftype collide-history (structure) - ((intersect vector :inline :offset-assert 0) - (trans vector :inline :offset-assert 16) - (transv vector :inline :offset-assert 32) - (transv-out vector :inline :offset-assert 48) - (local-normal vector :inline :offset-assert 64) - (surface-normal vector :inline :offset-assert 80) - (time uint64 :offset-assert 96) - (status uint64 :offset-assert 104) - (pat uint32 :offset-assert 112) - (reaction-flag uint32 :offset-assert 116) + ((intersect vector :inline :offset-assert 0) + (trans vector :inline :offset-assert 16) + (transv vector :inline :offset-assert 32) + (transv-out vector :inline :offset-assert 48) + (local-normal vector :inline :offset-assert 64) + (surface-normal vector :inline :offset-assert 80) + (time uint64 :offset-assert 96) + (status uint64 :offset-assert 104) + (pat pat-surface :offset-assert 112) + (reaction-flag uint32 :offset-assert 116) ) :method-count-assert 10 :size-assert #x78 diff --git a/test/decompiler/reference/engine/draw/drawable-actor-h_REF.gc b/test/decompiler/reference/engine/draw/drawable-actor-h_REF.gc index cfacb9db8f..0a2463eabd 100644 --- a/test/decompiler/reference/engine/draw/drawable-actor-h_REF.gc +++ b/test/decompiler/reference/engine/draw/drawable-actor-h_REF.gc @@ -39,7 +39,7 @@ ;; definition for method 10 of type drawable-tree-actor (defmethod - dummy-10 + draw drawable-tree-actor ((obj drawable-tree-actor) (arg0 drawable) (arg1 display-frame)) 0 diff --git a/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc b/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc index 447ff3b8ee..1055c0fdf4 100644 --- a/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc +++ b/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc @@ -42,7 +42,7 @@ ;; definition for method 10 of type drawable-tree-ambient (defmethod - dummy-10 + draw drawable-tree-ambient ((obj drawable-tree-ambient) (arg0 drawable) (arg1 display-frame)) 0 diff --git a/test/decompiler/reference/engine/draw/drawable-h_REF.gc b/test/decompiler/reference/engine/draw/drawable-h_REF.gc index deb9f044e5..ceb774e45e 100644 --- a/test/decompiler/reference/engine/draw/drawable-h_REF.gc +++ b/test/decompiler/reference/engine/draw/drawable-h_REF.gc @@ -10,8 +10,8 @@ :size-assert #x20 :flag-assert #x1200000020 (:methods - (dummy-9 (_type_) _type_ 9) - (dummy-10 (_type_ drawable display-frame) int 10) + (login (_type_) _type_ 9) + (draw (_type_ drawable display-frame) int 10) (dummy-11 (_type_ int) none 11) (dummy-12 (_type_ int) none 12) (dummy-13 (_type_ int) none 13) diff --git a/test/decompiler/reference/engine/draw/drawable-inline-array_REF.gc b/test/decompiler/reference/engine/draw/drawable-inline-array_REF.gc index c05d53d402..e75ec00306 100644 --- a/test/decompiler/reference/engine/draw/drawable-inline-array_REF.gc +++ b/test/decompiler/reference/engine/draw/drawable-inline-array_REF.gc @@ -7,13 +7,13 @@ ) ;; definition for method 9 of type drawable-inline-array -(defmethod dummy-9 drawable-inline-array ((obj drawable-inline-array)) +(defmethod login drawable-inline-array ((obj drawable-inline-array)) obj ) ;; definition for method 10 of type drawable-inline-array (defmethod - dummy-10 + draw drawable-inline-array ((obj drawable-inline-array) (arg0 drawable) (arg1 display-frame)) 0 @@ -32,7 +32,3 @@ 0 (none) ) - - - - diff --git a/test/decompiler/reference/engine/game/fact-h_REF.gc b/test/decompiler/reference/engine/game/fact-h_REF.gc index ec7405940e..249d7e5b11 100644 --- a/test/decompiler/reference/engine/game/fact-h_REF.gc +++ b/test/decompiler/reference/engine/game/fact-h_REF.gc @@ -243,99 +243,92 @@ (pkup-amount float) ) (local-vars (tag res-tag)) - (with-pp - (let - ((obj - (object-new allocation type-to-make (the-as int (-> type-to-make size))) + (let + ((obj + (object-new allocation type-to-make (the-as int (-> type-to-make size))) + ) + ) + (let ((ent (-> proc entity))) + (when (zero? obj) + (go process-drawable-art-error "memory") + (set! obj (the-as fact-info 0)) + (goto cfg-10) + ) + (set! (-> obj process) proc) + (set! tag (new 'static 'res-tag)) + (let + ((v1-6 + (the-as + (pointer int32) + ((method-of-type res-lump get-property-data) + ent + 'eco-info + 'interp + 0.0 + (the-as pointer #f) + (& tag) + *res-static-buf* + ) + ) + ) + ) + (cond + (v1-6 + (let ((a0-6 (-> tag elt-count))) + (set! (-> obj pickup-type) (the-as pickup-type (-> v1-6 0))) + (set! pkup-amount (cond + ((< (the-as uint 1) a0-6) + (the float (-> v1-6 1)) + ) + (else + (empty) + pkup-amount + ) + ) + ) + ) + (set! (-> obj pickup-amount) pkup-amount) + ) + (else + (set! (-> obj pickup-type) pkup-type) + (set! (-> obj pickup-amount) pkup-amount) + ) ) ) - (let ((ent (-> proc entity))) - (when (zero? obj) - (let ((go-func (the-as (function string none) enter-state)) - (a0-1 "memory") - ) - (set! (-> pp next-state) process-drawable-art-error) - (go-func a0-1) - ) - (set! obj (the-as fact-info 0)) - (goto cfg-10) - ) - (set! (-> obj process) proc) - (set! tag (new 'static 'res-tag)) - (let - ((v1-6 - (the-as - (pointer int32) - ((method-of-type res-lump get-property-data) - ent - 'eco-info - 'interp - 0.0 - (the-as pointer #f) - (& tag) - *res-static-buf* - ) - ) - ) - ) - (cond - (v1-6 - (let ((a0-6 (-> tag elt-count))) - (set! (-> obj pickup-type) (the-as pickup-type (-> v1-6 0))) - (set! pkup-amount (cond - ((< (the-as uint 1) a0-6) - (the float (-> v1-6 1)) - ) - (else - (empty) - pkup-amount - ) - ) - ) - ) - (set! (-> obj pickup-amount) pkup-amount) - ) - (else - (set! (-> obj pickup-type) pkup-type) - (set! (-> obj pickup-amount) pkup-amount) - ) + (set! + (-> obj options) + (the-as + uint + ((method-of-type res-lump get-property-value) + ent + 'options + 'interp + -1000000000.0 + (the-as uint128 0) + (the-as (pointer res-tag) #f) + *res-static-buf* ) ) + ) + (if (nonzero? (logand #x80200 (the-as int (-> obj options)))) (set! - (-> obj options) + (-> obj fade-time) (the-as uint - ((method-of-type res-lump get-property-value) - ent - 'options - 'interp - -1000000000.0 - (the-as uint128 0) - (the-as (pointer res-tag) #f) - *res-static-buf* - ) - ) - ) - (if (nonzero? (logand #x80200 (the-as int (-> obj options)))) - (set! - (-> obj fade-time) - (the-as - uint - (the - int - (* - 300.0 - (the-as - float - ((method-of-type res-lump get-property-value-float) - ent - 'timeout - 'interp - -1000000000.0 - 0.0 - (the-as (pointer res-tag) #f) - *res-static-buf* - ) + (the + int + (* + 300.0 + (the-as + float + ((method-of-type res-lump get-property-value-float) + ent + 'timeout + 'interp + -1000000000.0 + 0.0 + (the-as (pointer res-tag) #f) + *res-static-buf* ) ) ) @@ -343,9 +336,9 @@ ) ) ) - (label cfg-10) - obj ) + (label cfg-10) + obj ) ) diff --git a/test/decompiler/reference/engine/geometry/vol-h_REF.gc b/test/decompiler/reference/engine/geometry/vol-h_REF.gc index 50bdc5584c..0425525679 100644 --- a/test/decompiler/reference/engine/geometry/vol-h_REF.gc +++ b/test/decompiler/reference/engine/geometry/vol-h_REF.gc @@ -78,103 +78,96 @@ new vol-control ((allocation symbol) (type-to-make type) (arg0 process-drawable)) - (with-pp - (let - ((gp-0 - (the-as - object - (object-new allocation type-to-make (the-as int (-> type-to-make size))) - ) + (let + ((gp-0 + (the-as + object + (object-new allocation type-to-make (the-as int (-> type-to-make size))) ) ) - (when (zero? (the-as vol-control gp-0)) - (let ((t9-1 (the-as (function object object) enter-state)) - (a0-1 "memory") - ) - (set! (-> pp next-state) process-drawable-art-error) - (t9-1 a0-1) - ) - (set! gp-0 0) - (goto cfg-13) - ) - (set! (-> (the-as vol-control gp-0) process) arg0) - (let* - ((s5-1 (the-as res-lump (-> (the-as vol-control gp-0) process entity))) - (s4-0 (-> (lookup-tag-idx (the-as entity s5-1) 'vol 'exact 0.0) lo)) - ) - (when (>= (the-as int s4-0) 0) - (let ((s3-0 (the-as uint s4-0)) - (s2-0 (-> s5-1 tag s4-0)) - ) - 0 - (while (= (-> s2-0 name) (-> s5-1 tag s4-0 name)) - (let - ((v1-12 - (make-property-data - s5-1 - 0.0 - (the-as res-tag-pair s3-0) - (the-as pointer #f) - ) - ) - (a0-8 - (-> - (the-as vol-control gp-0) - pos-vol - (-> (the-as vol-control gp-0) pos-vol-count) - ) - ) - ) - (set! (-> a0-8 num-planes) (the-as int (-> s2-0 elt-count))) - (set! (-> a0-8 plane) (the-as uint v1-12)) - ) - (+! (-> (the-as vol-control gp-0) pos-vol-count) 1) - (+! s3-0 1) - (set! s2-0 (-> s5-1 tag s3-0)) - ) - ) - ) - ) - (let* - ((s5-2 (the-as res-lump (-> (the-as vol-control gp-0) process entity))) - (s4-1 (-> (lookup-tag-idx (the-as entity s5-2) 'cutoutvol 'exact 0.0) lo)) - ) - (when (>= (the-as int s4-1) 0) - (let ((s3-1 (the-as uint s4-1)) - (s2-1 (-> s5-2 tag s4-1)) - ) - 0 - (while (= (-> s2-1 name) (-> s5-2 tag s4-1 name)) - (let - ((v1-31 - (make-property-data - s5-2 - 0.0 - (the-as res-tag-pair s3-1) - (the-as pointer #f) - ) - ) - (a0-19 - (-> - (the-as vol-control gp-0) - neg-vol - (-> (the-as vol-control gp-0) neg-vol-count) - ) - ) - ) - (set! (-> a0-19 num-planes) (the-as int (-> s2-1 elt-count))) - (set! (-> a0-19 plane) (the-as uint v1-31)) - ) - (+! (-> (the-as vol-control gp-0) neg-vol-count) 1) - (+! s3-1 1) - (set! s2-1 (-> s5-2 tag s3-1)) - ) - ) - ) - ) - (label cfg-13) - (the-as vol-control gp-0) ) + (when (zero? (the-as vol-control gp-0)) + (go process-drawable-art-error "memory") + (set! gp-0 0) + (goto cfg-13) + ) + (set! (-> (the-as vol-control gp-0) process) arg0) + (let* ((s5-1 (the-as res-lump (-> (the-as vol-control gp-0) process entity))) + (s4-0 (-> (lookup-tag-idx (the-as entity s5-1) 'vol 'exact 0.0) lo)) + ) + (when (>= (the-as int s4-0) 0) + (let ((s3-0 (the-as uint s4-0)) + (s2-0 (-> s5-1 tag s4-0)) + ) + 0 + (while (= (-> s2-0 name) (-> s5-1 tag s4-0 name)) + (let + ((v1-12 + (make-property-data + s5-1 + 0.0 + (the-as res-tag-pair s3-0) + (the-as pointer #f) + ) + ) + (a0-8 + (-> + (the-as vol-control gp-0) + pos-vol + (-> (the-as vol-control gp-0) pos-vol-count) + ) + ) + ) + (set! (-> a0-8 num-planes) (the-as int (-> s2-0 elt-count))) + (set! (-> a0-8 plane) (the-as uint v1-12)) + ) + (+! (-> (the-as vol-control gp-0) pos-vol-count) 1) + (+! s3-0 1) + (set! s2-0 (-> s5-1 tag s3-0)) + ) + ) + ) + ) + (let* ((s5-2 (the-as res-lump (-> (the-as vol-control gp-0) process entity))) + (s4-1 + (-> (lookup-tag-idx (the-as entity s5-2) 'cutoutvol 'exact 0.0) lo) + ) + ) + (when (>= (the-as int s4-1) 0) + (let ((s3-1 (the-as uint s4-1)) + (s2-1 (-> s5-2 tag s4-1)) + ) + 0 + (while (= (-> s2-1 name) (-> s5-2 tag s4-1 name)) + (let + ((v1-31 + (make-property-data + s5-2 + 0.0 + (the-as res-tag-pair s3-1) + (the-as pointer #f) + ) + ) + (a0-19 + (-> + (the-as vol-control gp-0) + neg-vol + (-> (the-as vol-control gp-0) neg-vol-count) + ) + ) + ) + (set! (-> a0-19 num-planes) (the-as int (-> s2-1 elt-count))) + (set! (-> a0-19 plane) (the-as uint v1-31)) + ) + (+! (-> (the-as vol-control gp-0) neg-vol-count) 1) + (+! s3-1 1) + (set! s2-1 (-> s5-2 tag s3-1)) + ) + ) + ) + ) + (label cfg-13) + (the-as vol-control gp-0) ) ) diff --git a/test/decompiler/reference/engine/gfx/tie/prototype_REF.gc b/test/decompiler/reference/engine/gfx/tie/prototype_REF.gc index 8b56f3443c..cbfa4f619d 100644 --- a/test/decompiler/reference/engine/gfx/tie/prototype_REF.gc +++ b/test/decompiler/reference/engine/gfx/tie/prototype_REF.gc @@ -9,7 +9,7 @@ (dotimes (s3-0 4) (let ((a0-1 (-> s4-0 geometry s3-0))) (if (nonzero? a0-1) - (dummy-9 a0-1) + (login a0-1) ) ) ) @@ -33,7 +33,7 @@ ;; definition for method 9 of type prototype-inline-array-shrub (defmethod - dummy-9 + login prototype-inline-array-shrub ((obj prototype-inline-array-shrub)) (dotimes (s5-0 (-> obj length)) @@ -41,7 +41,7 @@ (dotimes (s3-0 4) (let ((a0-1 (-> s4-0 geometry s3-0))) (if (nonzero? a0-1) - (dummy-9 a0-1) + (login a0-1) ) ) ) diff --git a/test/decompiler/reference/engine/nav/navigate-h_REF.gc b/test/decompiler/reference/engine/nav/navigate-h_REF.gc index 5f7eea4ada..3be7752698 100644 --- a/test/decompiler/reference/engine/nav/navigate-h_REF.gc +++ b/test/decompiler/reference/engine/nav/navigate-h_REF.gc @@ -548,56 +548,49 @@ (sphere-count int) (nearest-y-threshold-default float) ) - (with-pp - (let - ((obj - (object-new - allocation - type-to-make - (the-as int (+ (-> type-to-make size) (the-as uint (* sphere-count 16)))) - ) + (let + ((obj + (object-new + allocation + type-to-make + (the-as int (+ (-> type-to-make size) (the-as uint (* sphere-count 16)))) ) ) - (when (zero? obj) - (let ((t9-1 (the-as function enter-state)) - (a0-1 "memory") - ) - (set! (-> pp next-state) process-drawable-art-error) - ((the-as (function string none) t9-1) a0-1) - ) - (set! obj (the-as nav-control 0)) - (goto cfg-4) - ) - (set! (-> obj max-spheres) sphere-count) - (set! (-> obj flags) (nav-control-flags bit8 bit13)) - (set! (-> obj mesh) (nav-mesh-connect (-> shape process) shape obj)) - (let ((ent (-> shape process entity))) - (set! - (-> obj nearest-y-threshold) - ((method-of-type res-lump get-property-value-float) - ent - 'nearest-y-threshold - 'interp - -1000000000.0 - nearest-y-threshold-default - (the-as (pointer res-tag) #f) - *res-static-buf* - ) - ) - ) - (set! (-> obj shape) shape) - (set! (-> obj process) (-> shape process)) - (set! (-> obj gap-event) #f) - (set! (-> obj current-poly) #f) - (set! (-> obj next-poly) #f) - (set! (-> obj target-poly) #f) - (set! (-> obj user-poly) #f) - (set! (-> obj portal 0) #f) - (set! (-> obj portal 1) #f) - (set! (-> obj nav-cull-radius) 40960.0) - (label cfg-4) - (the-as nav-control obj) ) + (when (zero? obj) + (go process-drawable-art-error "memory") + (set! obj (the-as nav-control 0)) + (goto cfg-4) + ) + (set! (-> obj max-spheres) sphere-count) + (set! (-> obj flags) (nav-control-flags bit8 bit13)) + (set! (-> obj mesh) (nav-mesh-connect (-> shape process) shape obj)) + (let ((ent (-> shape process entity))) + (set! + (-> obj nearest-y-threshold) + ((method-of-type res-lump get-property-value-float) + ent + 'nearest-y-threshold + 'interp + -1000000000.0 + nearest-y-threshold-default + (the-as (pointer res-tag) #f) + *res-static-buf* + ) + ) + ) + (set! (-> obj shape) shape) + (set! (-> obj process) (-> shape process)) + (set! (-> obj gap-event) #f) + (set! (-> obj current-poly) #f) + (set! (-> obj next-poly) #f) + (set! (-> obj target-poly) #f) + (set! (-> obj user-poly) #f) + (set! (-> obj portal 0) #f) + (set! (-> obj portal 1) #f) + (set! (-> obj nav-cull-radius) 40960.0) + (label cfg-4) + (the-as nav-control obj) ) ) diff --git a/test/decompiler/reference/engine/nav/path-h_REF.gc b/test/decompiler/reference/engine/nav/path-h_REF.gc index 5210d2736b..4f5d4c9b33 100644 --- a/test/decompiler/reference/engine/nav/path-h_REF.gc +++ b/test/decompiler/reference/engine/nav/path-h_REF.gc @@ -78,66 +78,59 @@ (time float) ) (local-vars (tag res-tag)) - (with-pp - (let - ((obj - (object-new allocation type-to-make (the-as int (-> type-to-make size))) - ) + (let + ((obj + (object-new allocation type-to-make (the-as int (-> type-to-make size))) ) - (when (zero? obj) - (let ((t9-1 (the-as function enter-state)) - (a0-1 "memory") - ) - (set! (-> pp next-state) process-drawable-art-error) - ((the-as (function string none) t9-1) a0-1) - ) - (set! obj (the-as path-control 0)) - (goto cfg-9) - ) - (set! (-> obj process) (the-as process-drawable proc)) - (set! (-> obj name) name) - (let ((ent (-> proc entity))) - (when (= name 'path) - (let ((lookup-entity (entity-actor-lookup ent 'path-actor 0))) - (if lookup-entity - (set! ent lookup-entity) - ) - ) - ) - (set! tag (new 'static 'res-tag)) - (let - ((data - ((method-of-type res-lump get-property-data) - ent - name - 'interp - time - (the-as pointer #f) - (& tag) - *res-static-buf* - ) - ) - ) - (cond - (data - (set! (-> obj cverts) (the-as (inline-array vector) data)) - (set! (-> obj curve num-cverts) (the-as int (-> tag elt-count))) - ) - (else - (set! - (-> obj flags) - (logior (-> obj flags) (path-control-flag not-found)) - ) - (set! (-> obj cverts) (the-as (inline-array vector) #f)) - (set! (-> obj curve num-cverts) 0) - 0 - ) - ) - ) - ) - (label cfg-9) - (the-as path-control obj) ) + (when (zero? obj) + (go process-drawable-art-error "memory") + (set! obj (the-as path-control 0)) + (goto cfg-9) + ) + (set! (-> obj process) (the-as process-drawable proc)) + (set! (-> obj name) name) + (let ((ent (-> proc entity))) + (when (= name 'path) + (let ((lookup-entity (entity-actor-lookup ent 'path-actor 0))) + (if lookup-entity + (set! ent lookup-entity) + ) + ) + ) + (set! tag (new 'static 'res-tag)) + (let + ((data + ((method-of-type res-lump get-property-data) + ent + name + 'interp + time + (the-as pointer #f) + (& tag) + *res-static-buf* + ) + ) + ) + (cond + (data + (set! (-> obj cverts) (the-as (inline-array vector) data)) + (set! (-> obj curve num-cverts) (the-as int (-> tag elt-count))) + ) + (else + (set! + (-> obj flags) + (logior (-> obj flags) (path-control-flag not-found)) + ) + (set! (-> obj cverts) (the-as (inline-array vector) #f)) + (set! (-> obj curve num-cverts) 0) + 0 + ) + ) + ) + ) + (label cfg-9) + (the-as path-control obj) ) ) diff --git a/test/decompiler/reference/engine/target/joint-mod-h_REF.gc b/test/decompiler/reference/engine/target/joint-mod-h_REF.gc index 60a5d302e9..5d3936d711 100644 --- a/test/decompiler/reference/engine/target/joint-mod-h_REF.gc +++ b/test/decompiler/reference/engine/target/joint-mod-h_REF.gc @@ -295,18 +295,14 @@ ) ) (set! (-> obj notice-time) (-> *display* base-frame-counter)) - (let ((ppointer (the-as (pointer process) (if proc - (the-as - (pointer process) - (-> proc ppointer) - ) - ) - ) + (let ((v1-12 (if proc + (-> proc ppointer) + ) ) ) (set! (-> last-try-to-look-at-data who) - (new 'static 'handle :process ppointer :pid (-> ppointer 0 pid)) + (new 'static 'handle :process v1-12 :pid (-> v1-12 0 pid)) ) ) (if (< (-> last-try-to-look-at-data vert) (-> enemy-facts cam-vert)) diff --git a/test/decompiler/reference/kernel/gkernel_REF.gc b/test/decompiler/reference/kernel/gkernel_REF.gc index 9f6d723562..60dde208f5 100644 --- a/test/decompiler/reference/kernel/gkernel_REF.gc +++ b/test/decompiler/reference/kernel/gkernel_REF.gc @@ -311,7 +311,7 @@ (set! (-> v0-0 brother) (the-as (pointer process-tree) #f)) (set! (-> v0-0 child) (the-as (pointer process-tree) #f)) (set! (-> v0-0 self) v0-0) - (set! (-> v0-0 ppointer) (&-> v0-0 self)) + (set! (-> v0-0 ppointer) (the-as (pointer process) (&-> v0-0 self))) v0-0 ) ) @@ -404,7 +404,10 @@ (set! (-> (the-as process v0-0) brother) (the-as (pointer process-tree) #f)) (set! (-> (the-as process v0-0) child) (the-as (pointer process-tree) #f)) (set! (-> (the-as process v0-0) self) (the-as process v0-0)) - (set! (-> (the-as process v0-0) ppointer) (&-> (the-as process v0-0) self)) + (set! + (-> (the-as process v0-0) ppointer) + (the-as (pointer process) (&-> (the-as process v0-0) self)) + ) (the-as process v0-0) ) ) @@ -545,7 +548,7 @@ (set! (-> s3-0 brother) (the-as (pointer process-tree) #f)) (set! (-> s3-0 child) (the-as (pointer process-tree) #f)) (set! (-> s3-0 self) s3-0) - (set! (-> s3-0 ppointer) (&-> s3-0 self)) + (set! (-> s3-0 ppointer) (the-as (pointer process) (&-> s3-0 self))) (dotimes (s2-1 arg0) (let ((s1-0 (-> s3-0 child)) (v1-5 ((method-of-type process new) allocation process 'dead arg1)) @@ -653,7 +656,7 @@ (set! (-> obj brother) (the-as (pointer process-tree) #f)) (set! (-> obj child) (the-as (pointer process-tree) #f)) (set! (-> obj self) obj) - (set! (-> obj ppointer) (&-> obj self)) + (set! (-> obj ppointer) (the-as (pointer process) (&-> obj self))) (countdown (v1-4 arg1) (let ((a0-4 (-> obj process-list v1-4))) (set! (-> a0-4 process) *null-process*) @@ -972,7 +975,7 @@ (set! (-> s5-1 2 mask) (the-as process-mask (-> s5-1 1))) (set! (-> obj alive-list prev) (the-as dead-pool-heap-rec (-> s5-1 1))) ) - (set! (-> s5-1 2) (the-as process-tree (-> obj dead-list next))) + (set! (-> s5-1 2) (the-as process (-> obj dead-list next))) (set! (-> obj dead-list next) (the-as dead-pool-heap-rec s5-1)) (set! (-> s5-1 0) *null-process*) ) diff --git a/test/decompiler/test_gkernel_decomp.cpp b/test/decompiler/test_gkernel_decomp.cpp index 526c5cbe29..a4d927710e 100644 --- a/test/decompiler/test_gkernel_decomp.cpp +++ b/test/decompiler/test_gkernel_decomp.cpp @@ -452,7 +452,7 @@ TEST_F(FormRegressionTest, RemoveMethod0ProcessTree) { " (set! (-> v0-0 brother) (the-as (pointer process-tree) #f))\n" " (set! (-> v0-0 child) (the-as (pointer process-tree) #f))\n" " (set! (-> v0-0 self) v0-0)\n" - " (set! (-> v0-0 ppointer) (&-> v0-0 self))\n" + " (set! (-> v0-0 ppointer) (the-as (pointer process) (&-> v0-0 self)))\n" " v0-0\n" " )"; test_with_expr(func, type, expected, false, "process-tree"); @@ -637,35 +637,35 @@ TEST_F(FormRegressionTest, ExprMethod0Process) { " daddiu sp, sp, 48"; std::string type = "(function symbol type basic int process)"; std::string expected = - "(let\n" - " ((v0-0\n" - " (if\n" - " (= (-> arg0 type) symbol)\n" - " (object-new\n" - " arg0\n" - " arg1\n" - " (the-as int (+ (-> process size) (the-as uint arg3)))\n" + "(let ((v0-0 (if (= (-> arg0 type) symbol)\n" + " (object-new\n" + " arg0\n" + " arg1\n" + " (the-as int (+ (-> process size) (the-as uint arg3)))\n" + " )\n" + " (+ (the-as int arg0) 4)\n" + " )\n" " )\n" - " (+ (the-as int arg0) 4)\n" " )\n" - " )\n" - " )\n" " (set! (-> (the-as process v0-0) name) arg2)\n" - " (set! (-> (the-as process v0-0) status) (quote dead))\n" + " (set! (-> (the-as process v0-0) status) 'dead)\n" " (set! (-> (the-as process v0-0) pid) 0)\n" " (set! (-> (the-as process v0-0) pool) #f)\n" " (set! (-> (the-as process v0-0) allocated-length) arg3)\n" " (set! (-> (the-as process v0-0) top-thread) #f)\n" " (set! (-> (the-as process v0-0) main-thread) #f)\n" - " (let\n" - " ((v1-5 (-> (the-as process v0-0) stack)))\n" + " (let ((v1-5 (-> (the-as process v0-0) stack)))\n" " (set! (-> (the-as process v0-0) heap-cur) v1-5)\n" " (set! (-> (the-as process v0-0) heap-base) v1-5)\n" " )\n" - " (set! (-> (the-as process v0-0) heap-top) (&-> (the-as process v0-0) stack (-> (the-as " - "process v0-0) allocated-length)))\n" - " (set! (-> (the-as process v0-0) stack-frame-top) (the-as stack-frame (-> (the-as process " - "v0-0) heap-top)))\n" + " (set!\n" + " (-> (the-as process v0-0) heap-top)\n" + " (&-> (the-as process v0-0) stack (-> (the-as process v0-0) allocated-length))\n" + " )\n" + " (set!\n" + " (-> (the-as process v0-0) stack-frame-top)\n" + " (the-as stack-frame (-> (the-as process v0-0) heap-top))\n" + " )\n" " (set! (-> (the-as process v0-0) stack-frame-top) #f)\n" " (set! (-> (the-as process v0-0) state) #f)\n" " (set! (-> (the-as process v0-0) next-state) #f)\n" @@ -677,7 +677,10 @@ TEST_F(FormRegressionTest, ExprMethod0Process) { " (set! (-> (the-as process v0-0) brother) (the-as (pointer process-tree) #f))\n" " (set! (-> (the-as process v0-0) child) (the-as (pointer process-tree) #f))\n" " (set! (-> (the-as process v0-0) self) (the-as process v0-0))\n" - " (set! (-> (the-as process v0-0) ppointer) (&-> (the-as process v0-0) self))\n" + " (set!\n" + " (-> (the-as process v0-0) ppointer)\n" + " (the-as (pointer process) (&-> (the-as process v0-0) self))\n" + " )\n" " (the-as process v0-0)\n" " )"; test_with_expr(func, type, expected, false, "process", {}, @@ -948,7 +951,7 @@ TEST_F(FormRegressionTest, ExprMethod0DeadPool) { " (set! (-> s3-0 brother) (the-as (pointer process-tree) #f))\n" " (set! (-> s3-0 child) (the-as (pointer process-tree) #f))\n" " (set! (-> s3-0 self) s3-0)\n" - " (set! (-> s3-0 ppointer) (&-> s3-0 self))\n" + " (set! (-> s3-0 ppointer) (the-as (pointer process) (&-> s3-0 self)))\n" " (dotimes\n" " (s2-1 arg2)\n" " (let\n" @@ -1264,7 +1267,7 @@ TEST_F(FormRegressionTest, ExprMethod0DeadPoolHeap) { " (set! (-> obj brother) (the-as (pointer process-tree) #f))\n" " (set! (-> obj child) (the-as (pointer process-tree) #f))\n" " (set! (-> obj self) obj)\n" - " (set! (-> obj ppointer) (&-> obj self))\n" + " (set! (-> obj ppointer) (the-as (pointer process) (&-> obj self)))\n" " (countdown (v1-4 arg3)\n" " (let ((a0-4 (-> obj process-list v1-4)))\n" " (set! (-> a0-4 process) *null-process*)\n" @@ -2240,7 +2243,7 @@ TEST_F(FormRegressionTest, ExprMethod15DeadPoolHeap) { " (set! (-> s5-1 2 mask) (the-as process-mask (-> s5-1 1)))\n" " (set! (-> arg0 alive-list prev) (the-as dead-pool-heap-rec (-> s5-1 1)))\n" " )\n" - " (set! (-> s5-1 2) (the-as process-tree (-> arg0 dead-list next)))\n" + " (set! (-> s5-1 2) (the-as process (-> arg0 dead-list next)))\n" " (set! (-> arg0 dead-list next) (the-as dead-pool-heap-rec s5-1))\n" " (set! (-> s5-1 0) *null-process*)\n" " )\n" From e537d5f8cbdb44750d59dc15b3f95d5f692dcf78 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 17 Jul 2021 22:08:38 +0000 Subject: [PATCH 17/57] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/{about.3bed851a.js => about.750138b1.js} | 4 ++-- docs/js/{about.3bed851a.js.map => about.750138b1.js.map} | 2 +- docs/js/{app.79cea398.js => app.81bb40f9.js} | 4 ++-- docs/js/{app.79cea398.js.map => app.81bb40f9.js.map} | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename docs/js/{about.3bed851a.js => about.750138b1.js} (99%) rename docs/js/{about.3bed851a.js.map => about.750138b1.js.map} (99%) rename docs/js/{app.79cea398.js => app.81bb40f9.js} (97%) rename docs/js/{app.79cea398.js.map => app.81bb40f9.js.map} (98%) diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index 6842c1447f..2c35918cdf 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 107228, + "value": 107180, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index 79a3d40716..14666610ec 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.3bed851a.js b/docs/js/about.750138b1.js similarity index 99% rename from docs/js/about.3bed851a.js rename to docs/js/about.750138b1.js index 72efaca026..44876fcc88 100644 --- a/docs/js/about.3bed851a.js +++ b/docs/js/about.750138b1.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107228,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.3bed851a.js.map \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107180,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.750138b1.js.map \ No newline at end of file diff --git a/docs/js/about.3bed851a.js.map b/docs/js/about.750138b1.js.map similarity index 99% rename from docs/js/about.3bed851a.js.map rename to docs/js/about.750138b1.js.map index ce35d0b4ec..792dace111 100644 --- a/docs/js/about.3bed851a.js.map +++ b/docs/js/about.750138b1.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?1e25","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.3bed851a.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?1e25","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.750138b1.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.79cea398.js b/docs/js/app.81bb40f9.js similarity index 97% rename from docs/js/app.79cea398.js rename to docs/js/app.81bb40f9.js index c01e46c7f8..84e7a5f546 100644 --- a/docs/js/app.79cea398.js +++ b/docs/js/app.81bb40f9.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?341e","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.81bb40f9.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"750138b1\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file From 9ed1170046b657a32f972595b672b515f5eaae4a Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Sun, 18 Jul 2021 19:28:56 -0400 Subject: [PATCH 18/57] add some really old vag file unpacking stuff (#708) --- common/CMakeLists.txt | 1 + common/audio/audio_formats.cpp | 300 ++++++++++++++++++ common/audio/audio_formats.h | 37 +++ common/util/BinaryReader.h | 26 +- decompiler/CMakeLists.txt | 1 + decompiler/ObjectFile/ObjectFileDB.cpp | 2 +- decompiler/config.cpp | 3 + decompiler/config.h | 3 + .../config/jak1_ntsc_black_label/inputs.jsonc | 13 + decompiler/data/streamed_audio.cpp | 222 +++++++++++++ decompiler/data/streamed_audio.h | 8 + decompiler/main.cpp | 5 + 12 files changed, 609 insertions(+), 12 deletions(-) create mode 100644 common/audio/audio_formats.cpp create mode 100644 common/audio/audio_formats.h create mode 100644 decompiler/data/streamed_audio.cpp create mode 100644 decompiler/data/streamed_audio.h diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index bcf36d3a68..711d1d9c16 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -1,5 +1,6 @@ add_library(common SHARED + audio/audio_formats.cpp cross_os_debug/xdbg.cpp cross_sockets/xsocket.cpp goos/Interpreter.cpp diff --git a/common/audio/audio_formats.cpp b/common/audio/audio_formats.cpp new file mode 100644 index 0000000000..231c69079d --- /dev/null +++ b/common/audio/audio_formats.cpp @@ -0,0 +1,300 @@ +#include "audio_formats.h" +#include "common/util/BinaryWriter.h" +#include "third-party/fmt/core.h" + +/*! + * Write a wave file from a vector of samples. + */ +void write_wave_file_mono(const std::vector& samples, + s32 sample_rate, + const std::string& name) { + WaveFileHeader header; + memcpy(header.chunk_id, "RIFF", 4); + header.chunk_size = 36 + samples.size() * sizeof(s16); + memcpy(header.format, "WAVE", 4); + + // now the format + memcpy(header.subchunk1_id, "fmt ", 4); + header.subchunk1_size = 16; + header.aud_format = 1; + header.num_channels = 1; // mono + header.sample_rate = sample_rate; + header.byte_rate = sample_rate * header.num_channels * sizeof(s16); + header.block_align = header.num_channels * sizeof(s16); + header.bits_per_sample = 16; + + memcpy(header.subchunk2_id, "data", 4); + header.subchunk2_size = samples.size() * sizeof(s16); + + BinaryWriter writer; + writer.add(header); + + for (auto& samp : samples) { + writer.add(samp); + } + + writer.write_to_file(name); +} + +std::vector decode_adpcm(BinaryReader& reader) { + std::vector decoded_samples; + s32 sample_prev[2] = {0, 0}; + constexpr s32 f1[5] = {0, 60, 115, 98, 122}; + constexpr s32 f2[5] = {0, 0, -52, -55, -60}; + + int block_idx = 0; + while (true) { + if (!reader.bytes_left()) { + break; + } + u8 shift_filter = reader.read(); + u8 flags = reader.read(); + u8 shift = shift_filter & 0b1111; + u8 filter = shift_filter >> 4; + + if (shift > 12) { + assert(false); + } + + if (filter > 4) { + assert(false); + } + + if (flags == 7) { + break; + } + + u8 input_buffer[14]; + + for (int i = 0; i < 14; i++) { + input_buffer[i] = reader.read(); + } + + for (int i = 0; i < 28; i++) { + int16_t nibble = input_buffer[i / 2]; + if (i % 2 == 0) { + nibble = (nibble & 0x0f); + } else { + nibble = (nibble & 0xf0) >> 4; + } + + s32 sample = (s32)(s16)(nibble << 12); + sample >>= shift; + sample += (sample_prev[0] * f1[filter] + sample_prev[1] * f2[filter] + 32) / 64; + + if (sample > 0x7fff) { + sample = 0x7fff; + } + + if (sample < -0x8000) { + sample = -0x8000; + } + + sample_prev[1] = sample_prev[0]; + sample_prev[0] = sample; + + decoded_samples.push_back(sample); + } + block_idx++; + } + + return decoded_samples; +} + +// I attempted to write an encoder below, which works, but has some limitations. +// - In some cases we can't recover the original data exactly because the decode saturates the +// the output to fit in a signed 16-bit integer. +// - There are some cases when there are multiple ways to encode the same data. +// The break_filter_ties function attempts to handle this, but doesn't work 100% of the time. + +template +T saturate(T in, T minimum, T maximum) { + if (in < minimum) { + return minimum; + } + if (in > maximum) { + return maximum; + } + return in; +} + +constexpr int SAMPLES_PER_BLOCK = 28; + +void encode_block_with_filter(int filter_idx, + const s16* samples_in, + s32* out, + const s32* prev_samples_in) { + constexpr s32 f1[5] = {0, 60, 115, 98, 122}; + constexpr s32 f2[5] = {0, 0, -52, -55, -60}; + s32 prev_samples[2] = {prev_samples_in[0], prev_samples_in[1]}; + + for (int sample_idx = 0; sample_idx < SAMPLES_PER_BLOCK; sample_idx++) { + s32 sample = samples_in[sample_idx]; + s32 delta = + sample - (prev_samples[0] * f1[filter_idx] + prev_samples[1] * f2[filter_idx] + 32) / 64; + out[sample_idx] = delta; + prev_samples[1] = prev_samples[0]; + prev_samples[0] = sample; + } +} + +int get_shift_error(int shift, const s32* samples, bool /*debug*/) { + int result = 0; + + for (int sample_idx = 0; sample_idx < SAMPLES_PER_BLOCK; sample_idx++) { + int left_shift = 32 - (12 + 4 - shift); + assert(left_shift >= 0); + s32 sample_left = samples[sample_idx] << left_shift; + s32 sample_right = sample_left >> (32 - 4); + s32 sample_compressed = sample_right << (12 - shift); + + s32 err = std::abs(sample_compressed - samples[sample_idx]); + + result += err; + } + return result; +} + +int get_max_bits(s32 value) { + int result = 0; + if (value >= 0) { + int last = 1; + while (value) { + result++; + last = value & 1; + value >>= 1; + } + if (last) { + result++; + } + } else { + int last = 0; + while (value != -1) { + result++; + last = value & 1; + value >>= 1; + } + if (!last) { + result++; + } + } + return result; +} + +int break_filter_ties(s32* errors, s32* filter_shifts) { + s32 best_error = INT32_MAX; + + for (int filter_idx = 0; filter_idx < 5; filter_idx++) { + if (errors[filter_idx] < best_error) { + best_error = errors[filter_idx]; + } + } + + s32 best_shift = INT32_MAX; + int best_filter = -1; + for (int filter_idx = 5; filter_idx-- > 0;) { + if (errors[filter_idx] == best_error) { + if (filter_shifts[filter_idx] <= best_shift) { + best_shift = filter_shifts[filter_idx]; + best_filter = filter_idx; + } + } + } + + return best_filter; +} + +void test_encode_adpcm(const std::vector& samples, + const std::vector& filter_debug, + const std::vector& shift_debug) { + // the data is made of blocks. + // Each block decodes to 28 samples. + // each block has a shift and FIR filter. + // the window is continuous across blocks. + + // we could try all combinations of filters / shifts and pick the best, but that's slow and + // we don't know how to break ties if multiple are the same. + // we will try all 5 filters, then be smart about picking the best shift from there. + + // filter coefficients. + // there are 5x FIR filters that you can pick between. + + // last two samples from chosen encoding of the previous block + // init to 0, like the decoder + s32 prev_block_samples[2] = {0, 0}; + + // TODO - this will drop some samples at the end, if we don't use a multiple of 28. + // probably best to go back and pad with zeros or something. + int block_count = samples.size() / SAMPLES_PER_BLOCK; + + for (int block_idx = 0; block_idx < block_count; block_idx++) { + // try each filter + s32 pre_shift_samples_per_filter[5][SAMPLES_PER_BLOCK]; + for (int filter_idx = 0; filter_idx < 5; filter_idx++) { + encode_block_with_filter(filter_idx, samples.data() + SAMPLES_PER_BLOCK * block_idx, + pre_shift_samples_per_filter[filter_idx], prev_block_samples); + } + + // this is somewhat arbitrary, but we will require that the largest delta in the previous encode + // can be represented. + + s32 filter_errors[5] = {0, 0, 0, 0, 0}; + s32 filter_shifts[5] = {-1, -1, -1, -1}; + for (int filter_idx = 0; filter_idx < 5; filter_idx++) { + // find the largest value + s32 max_sample = INT32_MIN; + s32 min_sample = INT32_MAX; + + bool debug = block_idx == 10966 && filter_idx == 4; + + for (int sample_idx = 0; sample_idx < SAMPLES_PER_BLOCK; sample_idx++) { + s32 s = pre_shift_samples_per_filter[filter_idx][sample_idx]; + max_sample = std::max(s, max_sample); + min_sample = std::min(s, min_sample); + } + + if (debug) { + fmt::print("Range: {}\n", max_sample - min_sample); + } + + // see how many bits we need and pick shift. + auto bits_for_max = std::max(4, std::max(get_max_bits(min_sample), get_max_bits(max_sample))); + + filter_shifts[filter_idx] = 4 + 12 - bits_for_max; + + filter_errors[filter_idx] = get_shift_error(filter_shifts[filter_idx], + pre_shift_samples_per_filter[filter_idx], debug); + + if (filter_errors[filter_idx] == 0) { + while (filter_shifts[filter_idx] >= 0) { + int next_error = get_shift_error(filter_shifts[filter_idx] - 1, + pre_shift_samples_per_filter[filter_idx], false); + if (next_error == 0) { + filter_shifts[filter_idx]--; + } else { + break; + } + } + } + } + + int best_filter = break_filter_ties(filter_errors, filter_shifts); + s32 best_shift = filter_shifts[best_filter]; + + if (filter_errors[best_filter] || best_filter != filter_debug[block_idx] || + best_shift != shift_debug[block_idx]) { + fmt::print("Block {} me {}, {} : answer {} {}: ERR {}\n", block_idx, best_filter, best_shift, + filter_debug[block_idx], shift_debug[block_idx], filter_errors[best_filter]); + fmt::print("filter errors:\n"); + for (int i = 0; i < 5; i++) { + fmt::print(" [{}] {} {}\n", i, filter_errors[i], filter_shifts[i]); + } + fmt::print("prev: {} {}\n", prev_block_samples[0], prev_block_samples[1]); + assert(false); + } + + prev_block_samples[0] = samples.at(block_idx * 28 + 27); + prev_block_samples[1] = samples.at(block_idx * 28 + 26); + + } // end loop over blocks +} diff --git a/common/audio/audio_formats.h b/common/audio/audio_formats.h new file mode 100644 index 0000000000..ea72c50f5e --- /dev/null +++ b/common/audio/audio_formats.h @@ -0,0 +1,37 @@ +#pragma once + +#include +#include + +#include "common/util/BinaryReader.h" +#include "common/common_types.h" + +// The header data for a simple wave file +struct WaveFileHeader { + // wave file header + char chunk_id[4]; + s32 chunk_size; + char format[4]; + + // format chunk + char subchunk1_id[4]; + s32 subchunk1_size; + s16 aud_format; + s16 num_channels; + s32 sample_rate; + s32 byte_rate; + s16 block_align; + s16 bits_per_sample; + + // data chunk + char subchunk2_id[4]; + s32 subchunk2_size; +}; + +void write_wave_file_mono(const std::vector& samples, + s32 sample_rate, + const std::string& name); + +std::vector decode_adpcm(BinaryReader& reader); + +std::vector encode_adpcm(const std::vector& samples); \ No newline at end of file diff --git a/common/util/BinaryReader.h b/common/util/BinaryReader.h index b548c3366f..d6d43b0aae 100644 --- a/common/util/BinaryReader.h +++ b/common/util/BinaryReader.h @@ -6,31 +6,35 @@ */ #include +#include #include "common/util/assert.h" +#include "common/common_types.h" #include class BinaryReader { public: - explicit BinaryReader(const std::vector& _buffer) : buffer(_buffer) {} + explicit BinaryReader(const std::vector& _buffer) : m_buffer(_buffer) {} template T read() { - assert(seek + sizeof(T) <= buffer.size()); - T& obj = *(T*)(buffer.data() + seek); - seek += sizeof(T); + assert(m_seek + sizeof(T) <= m_buffer.size()); + T obj; + memcpy(&obj, m_buffer.data() + m_seek, sizeof(T)); + m_seek += sizeof(T); return obj; } void ffwd(int amount) { - seek += amount; - assert(seek <= buffer.size()); + m_seek += amount; + assert(m_seek <= m_buffer.size()); } - uint32_t bytes_left() const { return buffer.size() - seek; } - uint8_t* here() { return buffer.data() + seek; } - uint32_t get_seek() const { return seek; } + uint32_t bytes_left() const { return m_buffer.size() - m_seek; } + uint8_t* here() { return m_buffer.data() + m_seek; } + uint32_t get_seek() const { return m_seek; } + void set_seek(u32 seek) { m_seek = seek; } private: - std::vector buffer; - uint32_t seek = 0; + std::vector m_buffer; + uint32_t m_seek = 0; }; diff --git a/decompiler/CMakeLists.txt b/decompiler/CMakeLists.txt index 4a9ed5f51e..abf5e3986b 100644 --- a/decompiler/CMakeLists.txt +++ b/decompiler/CMakeLists.txt @@ -18,6 +18,7 @@ add_library( data/dir_tpages.cpp data/game_count.cpp data/game_text.cpp + data/streamed_audio.cpp data/StrFileReader.cpp data/tpage.cpp diff --git a/decompiler/ObjectFile/ObjectFileDB.cpp b/decompiler/ObjectFile/ObjectFileDB.cpp index e318eeca6a..b36b13b085 100644 --- a/decompiler/ObjectFile/ObjectFileDB.cpp +++ b/decompiler/ObjectFile/ObjectFileDB.cpp @@ -157,7 +157,7 @@ ObjectFileDB::ObjectFileDB(const std::vector& _dgos, lg::info("ObjectFileDB Initialized\n"); if (obj_files_by_name.empty()) { - lg::die( + lg::error( "No object files have been added. Check that there are input files and the allowed_objects " "list."); } diff --git a/decompiler/config.cpp b/decompiler/config.cpp index dccb5f247a..45f9d2c64f 100644 --- a/decompiler/config.cpp +++ b/decompiler/config.cpp @@ -33,6 +33,9 @@ Config read_config_file(const std::string& path_to_config_file) { config.dgo_names = inputs_json.at("dgo_names").get>(); config.object_file_names = inputs_json.at("object_file_names").get>(); config.str_file_names = inputs_json.at("str_file_names").get>(); + config.audio_dir_file_name = inputs_json.at("audio_dir_file_name").get(); + config.streamed_audio_file_names = + inputs_json.at("streamed_audio_file_names").get>(); if (cfg.contains("obj_file_name_map_file")) { config.obj_file_name_map_file = cfg.at("obj_file_name_map_file").get(); diff --git a/decompiler/config.h b/decompiler/config.h index c7af0b1be0..7b5161896b 100644 --- a/decompiler/config.h +++ b/decompiler/config.h @@ -68,6 +68,9 @@ struct Config { std::vector object_file_names; std::vector str_file_names; + std::string audio_dir_file_name; + std::vector streamed_audio_file_names; + std::string obj_file_name_map_file; bool disassemble_code = false; diff --git a/decompiler/config/jak1_ntsc_black_label/inputs.jsonc b/decompiler/config/jak1_ntsc_black_label/inputs.jsonc index 6a816ad2ba..40138334a2 100644 --- a/decompiler/config/jak1_ntsc_black_label/inputs.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/inputs.jsonc @@ -256,5 +256,18 @@ "TEXT/4COMMON.TXT", "TEXT/5COMMON.TXT", "TEXT/6COMMON.TXT" + ], + + // uncomment the next line to extract audio to wave files. + //"audio_dir_file_name": "VAG/VAGDIR.AYB", + "audio_dir_file_name" : "", + + "streamed_audio_file_names": [ + "VAG/VAGWAD.ENG", + "VAG/VAGWAD.FRE", + "VAG/VAGWAD.GER", + "VAG/VAGWAD.ITA", + "VAG/VAGWAD.JAP", + "VAG/VAGWAD.SPA" ] } diff --git a/decompiler/data/streamed_audio.cpp b/decompiler/data/streamed_audio.cpp new file mode 100644 index 0000000000..8636b6e3de --- /dev/null +++ b/decompiler/data/streamed_audio.cpp @@ -0,0 +1,222 @@ + +#include "common/log/log.h" +#include "common/util/FileUtil.h" +#include "common/util/BinaryReader.h" +#include "common/audio/audio_formats.h" +#include "third-party/fmt/core.h" +#include "third-party/json.hpp" + +#include "streamed_audio.h" + +namespace decompiler { + +// number of bytes per "audio page" in the VAG directory file. +constexpr int AUDIO_PAGE_SIZE = 2048; + +// Swap endian of 32-bit value. +uint32_t swap32(uint32_t in) { + return ((in << 24) | ((in & 0xff00) << 8) | ((in & 0xff0000) >> 8) | (in >> 24)); +} + +/*! + * A processed version of the VAGDIR file containing a map from 8-char name to location in the + * WAD files. + */ +struct AudioDir { + struct Entry { + std::string name; + s64 start_byte = -1; + s64 end_byte = -1; + }; + + std::vector entries; + + void set_file_size(u64 size) { + if (!entries.empty()) { + entries.back().end_byte = size; + } + } + + int entry_count() const { return entries.size(); } + + void debug_print() const { + for (auto& e : entries) { + fmt::print("\"{}\" 0x{:07x} - 0x{:07x}\n", e.name, e.start_byte, e.end_byte); + } + } +}; + +/*! + * Read an entry from a WAD and return the binary data. + */ +std::vector read_entry(const AudioDir& dir, const std::vector& data, int entry_idx) { + const auto& entry = dir.entries.at(entry_idx); + assert(entry.end_byte > 0); + return std::vector(data.begin() + entry.start_byte, data.begin() + entry.end_byte); +} + +/*! + * Matches the format in file. + */ +struct VagFileHeader { + char magic[4]; + u32 version; + u32 zero; + u32 channel_size; + u32 sample_rate; + u32 z[3]; + char name[16]; + + VagFileHeader swapped_endian() const { + VagFileHeader result(*this); + result.version = swap32(result.version); + result.channel_size = swap32(result.channel_size); + result.sample_rate = swap32(result.sample_rate); + return result; + } + + void debug_print() { + char temp_name[17]; + memcpy(temp_name, name, 16); + temp_name[16] = '\0'; + fmt::print("{}{}{}{} v {} zero {} chan {} samp {} z {} {} {} name {}\n", magic[0], magic[1], + magic[2], magic[3], version, zero, channel_size, sample_rate, z[0], z[1], z[2], + temp_name); + } +}; + +/*! + * Read the DIR file into an AudioDir + */ +AudioDir read_audio_dir(const std::string& path) { + // matches the format in file. + struct DirEntry { + char name[8]; + u32 value; + }; + auto data = file_util::read_binary_file(path); + lg::info("Got {} bytes of audio dir.\n", data.size()); + auto reader = BinaryReader(data); + + u32 count = reader.read(); + u32 data_end = sizeof(u32) + sizeof(DirEntry) * count; + assert(data_end <= data.size()); + std::vector entries; + for (u32 i = 0; i < count; i++) { + entries.push_back(reader.read()); + } + + while (reader.bytes_left()) { + assert(reader.read() == 0); + } + + AudioDir result; + + assert(!entries.empty()); + for (size_t i = 0; i < entries.size(); i++) { + AudioDir::Entry e; + for (auto c : entries[i].name) { + // padded with spaces, no null terminator. + e.name.push_back(c); + e.start_byte = AUDIO_PAGE_SIZE * entries[i].value; + if (i + 1 < (entries.size())) { + e.end_byte = AUDIO_PAGE_SIZE * entries[i + 1].value; + } else { + e.end_byte = -1; + } + } + result.entries.push_back(e); + } + + return result; +} + +std::string remove_trailing_spaces(const std::string& in) { + auto short_name = in; + while (!short_name.empty() && short_name.back() == ' ') { + short_name.pop_back(); + } + return short_name; +} + +struct AudioFileInfo { + std::string filename; + double length_seconds; +}; + +AudioFileInfo process_audio_file(const std::vector& data, + const std::string& name, + const std::string& suffix) { + BinaryReader reader(data); + + auto header = reader.read(); + if (header.magic[0] == 'V') { + header = header.swapped_endian(); + } else { + assert(false); + } + header.debug_print(); + + for (int i = 0; i < 16; i++) { + assert(reader.read() == 0); + } + + std::vector decoded_samples = decode_adpcm(reader); + + while (reader.bytes_left()) { + assert(reader.read() == 0); + } + + auto file_name = fmt::format("{}_{}.wav", remove_trailing_spaces(name), suffix); + write_wave_file_mono(decoded_samples, header.sample_rate, + file_util::get_file_path({"assets", "streaming_audio", file_name})); + + std::string vag_filename; + for (int i = 0; i < 16; i++) { + if (header.name[i]) { + vag_filename.push_back(header.name[i]); + } + } + return {vag_filename, (double)decoded_samples.size() / header.sample_rate}; +} + +void process_streamed_audio(const std::string& dir, const std::vector& audio_files) { + lg::info("Streaming audio: {}\n", dir); + file_util::create_dir_if_needed(file_util::get_file_path({"assets", "streaming_audio"})); + auto dir_data = read_audio_dir(file_util::get_file_path({"iso_data", dir})); + double audio_len = 0.f; + + std::vector langs; + std::vector> filename_data; + for (auto& e : dir_data.entries) { + std::vector placeholders = {remove_trailing_spaces(e.name)}; + for (size_t i = 0; i < audio_files.size(); i++) { + placeholders.push_back("????"); + } + filename_data.push_back(placeholders); + } + + for (size_t lang_id = 0; lang_id < audio_files.size(); lang_id++) { + auto& file = audio_files[lang_id]; + auto wad_data = file_util::read_binary_file(file_util::get_file_path({"iso_data", file})); + auto suffix = std::filesystem::path(file).extension().u8string().substr(1); + langs.push_back(suffix); + dir_data.set_file_size(wad_data.size()); + for (int i = 3; i < dir_data.entry_count(); i++) { + auto audio_data = read_entry(dir_data, wad_data, i); + lg::info("File {}, total {:.2f} minutes", dir_data.entries.at(i).name, audio_len / 60.0); + auto info = process_audio_file(audio_data, dir_data.entries.at(i).name, suffix); + audio_len += info.length_seconds; + filename_data[i][lang_id + 1] = info.filename; + } + } + + nlohmann::json file_list; + file_list["names"] = filename_data; + file_list["languages"] = langs; + + file_util::write_text_file( + file_util::get_file_path({"assets", "streaming_audio", "file_list.txt"}), file_list.dump(2)); +} + +} // namespace decompiler diff --git a/decompiler/data/streamed_audio.h b/decompiler/data/streamed_audio.h new file mode 100644 index 0000000000..b98d47c4e7 --- /dev/null +++ b/decompiler/data/streamed_audio.h @@ -0,0 +1,8 @@ +#pragma once + +#include +#include + +namespace decompiler { +void process_streamed_audio(const std::string& dir, const std::vector& audio_files); +} \ No newline at end of file diff --git a/decompiler/main.cpp b/decompiler/main.cpp index 45a4990c13..206251cffd 100644 --- a/decompiler/main.cpp +++ b/decompiler/main.cpp @@ -6,6 +6,7 @@ #include "config.h" #include "common/util/FileUtil.h" #include "common/versions.h" +#include "decompiler/data/streamed_audio.h" int main(int argc, char** argv) { using namespace decompiler; @@ -119,6 +120,10 @@ int main(int argc, char** argv) { } } + if (!config.audio_dir_file_name.empty()) { + process_streamed_audio(config.audio_dir_file_name, config.streamed_audio_file_names); + } + lg::info("Disassembly has completed successfully."); return 0; } From c76b51d8052826d9b182916b9404391899260b9a Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Mon, 19 Jul 2021 20:49:33 -0400 Subject: [PATCH 19/57] clean up to gsound! (#709) --- decompiler/IR2/FormExpressionAnalysis.cpp | 43 +- decompiler/ObjectFile/ObjectFileDB_IR2.cpp | 11 +- decompiler/analysis/atomic_op_builder.cpp | 89 +- decompiler/analysis/atomic_op_builder.h | 13 +- decompiler/config/all-types.gc | 24 +- .../config/jak1_ntsc_black_label/hacks.jsonc | 17 +- .../stack_structures.jsonc | 2 + .../jak1_ntsc_black_label/type_casts.jsonc | 3 - .../jak1_ntsc_black_label/var_names.jsonc | 22 + goal_src/engine/camera/camera-h.gc | 69 +- goal_src/engine/debug/stats-h.gc | 40 +- goal_src/engine/entity/actor-link-h.gc | 31 +- goal_src/engine/gfx/vis/bsp-h.gc | 7 + goal_src/engine/sound/gsound-h.gc | 8 +- goal_src/engine/sound/gsound.gc | 138 +- goal_src/engine/target/target-h.gc | 3 +- goal_src/engine/ui/progress-h.gc | 4 + test/decompiler/FormRegressionTest.cpp | 2 +- .../decompiler/reference/decompiler-macros.gc | 21 + .../reference/engine/camera/camera-h_REF.gc | 44 +- .../reference/engine/debug/stats-h_REF.gc | 65 +- .../engine/draw/process-drawable-h_REF.gc | 2 +- .../engine/entity/actor-link-h_REF.gc | 62 +- .../reference/engine/sound/gsound-h_REF.gc | 8 +- .../reference/engine/sound/gsound_REF.gc | 1741 +++++++++++++++++ test/decompiler/test_FormExpressionBuild2.cpp | 3 +- test/offline/offline_test_main.cpp | 9 +- 27 files changed, 2263 insertions(+), 218 deletions(-) create mode 100644 test/decompiler/reference/engine/sound/gsound_REF.gc diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index 84e1735093..fe22cf9302 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -967,7 +967,8 @@ void SimpleExpressionElement::update_from_stack_add_i(const Env& env, } else { auto casted0 = args.at(0); - if (!arg0_i && !arg0_u && arg0_type.typespec() != TypeSpec("binteger")) { + if (!arg0_i && !arg0_u && arg0_type.typespec() != TypeSpec("binteger") && + !env.dts->ts.tc(TypeSpec("integer"), arg0_type.typespec())) { casted0 = pool.alloc_single_element_form( nullptr, TypeSpec(arg0_i ? "int" : "uint"), args.at(0)); } @@ -975,8 +976,9 @@ void SimpleExpressionElement::update_from_stack_add_i(const Env& env, auto casted1 = pool.alloc_single_element_form( nullptr, TypeSpec(arg0_i ? "int" : "uint"), args.at(1)); - auto new_form = pool.alloc_element( + FormElement* new_form = pool.alloc_element( GenericOperator::make_fixed(FixedOperatorKind::ADDITION), casted0, casted1); + result->push_back(new_form); } } @@ -3289,6 +3291,23 @@ Form* try_make_constant_from_int_for_compare(s64 value, } return nullptr; } + +std::vector cast_to_64_bit(const std::vector& forms, + const std::vector& types, + FormPool& pool, + const Env& env) { + std::vector result; + for (size_t i = 0; i < forms.size(); i++) { + if (env.dts->ts.tc(TypeSpec("uint128"), types.at(i))) { + result.push_back(cast_form(forms[i], TypeSpec("uint"), pool, env)); + } else if (env.dts->ts.tc(TypeSpec("int128"), types.at(i))) { + result.push_back(cast_form(forms[i], TypeSpec("int"), pool, env)); + } else { + result.push_back(forms[i]); + } + } + return result; +} } // namespace FormElement* ConditionElement::make_zero_check_generic(const Env& env, @@ -3388,16 +3407,18 @@ FormElement* ConditionElement::make_equal_check_generic(const Env& env, return pool.alloc_element(GenericOperator::make_fixed(FixedOperatorKind::EQ), forms_with_cast); } else { - return pool.alloc_element(GenericOperator::make_fixed(FixedOperatorKind::EQ), - source_forms); + return pool.alloc_element( + GenericOperator::make_fixed(FixedOperatorKind::EQ), + cast_to_64_bit(source_forms, source_types, pool, env)); } } } -FormElement* ConditionElement::make_not_equal_check_generic(const Env&, - FormPool& pool, - const std::vector& source_forms, - const std::vector&) { +FormElement* ConditionElement::make_not_equal_check_generic( + const Env& env, + FormPool& pool, + const std::vector& source_forms, + const std::vector& source_types) { assert(source_forms.size() == 2); // (!= thing '()) auto ref = source_forms.at(1); @@ -3409,8 +3430,9 @@ FormElement* ConditionElement::make_not_equal_check_generic(const Env&, pool.alloc_single_element_form( nullptr, GenericOperator::make_fixed(FixedOperatorKind::NULLP), source_forms.at(0))); } else { - return pool.alloc_element(GenericOperator::make_fixed(FixedOperatorKind::NEQ), - source_forms); + return pool.alloc_element( + GenericOperator::make_fixed(FixedOperatorKind::NEQ), + cast_to_64_bit(source_forms, source_types, pool, env)); } } @@ -4088,6 +4110,7 @@ void BranchElement::push_to_stack(const Env& env, FormPool& pool, FormStack& sta m_op->to_string(env)); } + assert(!m_op->likely()); auto op = pool.alloc_element(branch_condition, branch_delay, m_op->label_id(), m_op->likely()); // fmt::print("rewrote (non-asm) as {}\n", op->to_string(env)); diff --git a/decompiler/ObjectFile/ObjectFileDB_IR2.cpp b/decompiler/ObjectFile/ObjectFileDB_IR2.cpp index 7943ba1611..d94d824b92 100644 --- a/decompiler/ObjectFile/ObjectFileDB_IR2.cpp +++ b/decompiler/ObjectFile/ObjectFileDB_IR2.cpp @@ -306,8 +306,17 @@ void ObjectFileDB::ir2_atomic_op_pass(const Config& config) { bool inline_asm = config.hacks.hint_inline_assembly_functions.find(func.guessed_name.to_string()) != config.hacks.hint_inline_assembly_functions.end(); + + std::unordered_set blocks_ending_in_asm_branch; + auto asm_branch_it = config.hacks.blocks_ending_in_asm_branch_by_func_name.find( + func.guessed_name.to_string()); + + if (asm_branch_it != config.hacks.blocks_ending_in_asm_branch_by_func_name.end()) { + blocks_ending_in_asm_branch = asm_branch_it->second; + } + auto ops = convert_function_to_atomic_ops(func, data.linked_data.labels, func.warnings, - inline_asm); + inline_asm, blocks_ending_in_asm_branch); func.ir2.atomic_ops = std::make_shared(std::move(ops)); func.ir2.atomic_ops_succeeded = true; func.ir2.env.set_end_var(func.ir2.atomic_ops->end_op().return_var()); diff --git a/decompiler/analysis/atomic_op_builder.cpp b/decompiler/analysis/atomic_op_builder.cpp index 7fcbf3fdcf..11e1018f65 100644 --- a/decompiler/analysis/atomic_op_builder.cpp +++ b/decompiler/analysis/atomic_op_builder.cpp @@ -11,7 +11,10 @@ namespace decompiler { namespace { -std::unique_ptr convert_1(const Instruction& i0, int idx, bool hint_inline_asm); +std::unique_ptr convert_1(const Instruction& i0, + int idx, + bool hint_inline_asm, + bool force_asm_branch); ////////////////////// // Register Helpers @@ -364,7 +367,9 @@ std::unique_ptr make_asm_op(const Instruction& i0, int idx) { } std::unique_ptr convert_1_allow_asm(const Instruction& i0, int idx) { - auto as_normal = convert_1(i0, idx, false); + // only used for delay slots, so fine to assume that this can never be an asm branch itself + // as there are no branches in delay slots anywhere. + auto as_normal = convert_1(i0, idx, false, false); if (as_normal) { return as_normal; } @@ -426,15 +431,6 @@ std::unique_ptr make_branch(const IR2_Condition& condition, } } -std::unique_ptr make_branch_no_delay(const IR2_Condition& condition, - bool likely, - int dest_label, - int my_idx) { - assert(likely); - IR2_BranchDelay delay(IR2_BranchDelay::Kind::NO_DELAY); - return std::make_unique(likely, condition, dest_label, delay, my_idx); -} - std::unique_ptr make_asm_branch_no_delay(const IR2_Condition& condition, bool likely, int dest_label, @@ -443,6 +439,19 @@ std::unique_ptr make_asm_branch_no_delay(const IR2_Condition& conditio return std::make_unique(likely, condition, dest_label, nullptr, my_idx); } +std::unique_ptr make_branch_no_delay(const IR2_Condition& condition, + bool likely, + int dest_label, + int my_idx, + bool force_asm_branch) { + if (force_asm_branch) { + return make_asm_branch_no_delay(condition, likely, dest_label, my_idx); + } + assert(likely); + IR2_BranchDelay delay(IR2_BranchDelay::Kind::NO_DELAY); + return std::make_unique(likely, condition, dest_label, delay, my_idx); +} + std::unique_ptr make_asm_branch(const IR2_Condition& condition, const Instruction& delay, bool likely, @@ -705,12 +714,16 @@ std::unique_ptr convert_dsrl32_1(const Instruction& i0, int idx) { std::unique_ptr convert_likely_branch_1(const Instruction& i0, IR2_Condition::Kind kind, bool likely, - int idx) { + int idx, + bool force_asm) { return make_branch_no_delay(IR2_Condition(kind, make_src_atom(i0.get_src(0).get_reg(), idx)), - likely, i0.get_src(1).get_label(), idx); + likely, i0.get_src(1).get_label(), idx, force_asm); } -std::unique_ptr convert_beql_1(const Instruction& i0, int idx, bool likely) { +std::unique_ptr convert_beql_1(const Instruction& i0, + int idx, + bool likely, + bool force_asm) { auto s0 = i0.get_src(0).get_reg(); auto s1 = i0.get_src(1).get_reg(); auto dest = i0.get_src(2).get_label(); @@ -735,10 +748,13 @@ std::unique_ptr convert_beql_1(const Instruction& i0, int idx, bool li IR2_Condition(IR2_Condition::Kind::EQUAL, make_src_atom(s0, idx), make_src_atom(s1, idx)); condition.make_flipped(); } - return make_branch_no_delay(condition, likely, dest, idx); + return make_branch_no_delay(condition, likely, dest, idx, force_asm); } -std::unique_ptr convert_bnel_1(const Instruction& i0, int idx, bool likely) { +std::unique_ptr convert_bnel_1(const Instruction& i0, + int idx, + bool likely, + bool force_asm) { auto s0 = i0.get_src(0).get_reg(); auto s1 = i0.get_src(1).get_reg(); auto dest = i0.get_src(2).get_label(); @@ -756,7 +772,7 @@ std::unique_ptr convert_bnel_1(const Instruction& i0, int idx, bool li make_src_atom(s1, idx)); condition.make_flipped(); } - return make_branch_no_delay(condition, likely, dest, idx); + return make_branch_no_delay(condition, likely, dest, idx, force_asm); } std::unique_ptr convert_subu_1(const Instruction& i0, int idx) { @@ -771,7 +787,10 @@ std::unique_ptr convert_subu_1(const Instruction& i0, int idx) { } } -std::unique_ptr convert_1(const Instruction& i0, int idx, bool hint_inline_asm) { +std::unique_ptr convert_1(const Instruction& i0, + int idx, + bool hint_inline_asm, + bool force_asm_branch) { switch (i0.kind) { case InstructionKind::OR: return convert_or_1(i0, idx); @@ -895,15 +914,18 @@ std::unique_ptr convert_1(const Instruction& i0, int idx, bool hint_in case InstructionKind::MOVZ: return convert_cmov_1(i0, idx); case InstructionKind::BGTZL: - return convert_likely_branch_1(i0, IR2_Condition::Kind::GREATER_THAN_ZERO_SIGNED, true, idx); + return convert_likely_branch_1(i0, IR2_Condition::Kind::GREATER_THAN_ZERO_SIGNED, true, idx, + force_asm_branch); case InstructionKind::BGEZL: - return convert_likely_branch_1(i0, IR2_Condition::Kind::GEQ_ZERO_SIGNED, true, idx); + return convert_likely_branch_1(i0, IR2_Condition::Kind::GEQ_ZERO_SIGNED, true, idx, + force_asm_branch); case InstructionKind::BLTZL: - return convert_likely_branch_1(i0, IR2_Condition::Kind::LESS_THAN_ZERO_SIGNED, true, idx); + return convert_likely_branch_1(i0, IR2_Condition::Kind::LESS_THAN_ZERO_SIGNED, true, idx, + force_asm_branch); case InstructionKind::BEQL: - return convert_beql_1(i0, idx, true); + return convert_beql_1(i0, idx, true, force_asm_branch); case InstructionKind::BNEL: - return convert_bnel_1(i0, idx, true); + return convert_bnel_1(i0, idx, true, force_asm_branch); case InstructionKind::SUBU: return convert_subu_1(i0, idx); // may fail default: @@ -1787,7 +1809,8 @@ int convert_block_to_atomic_ops(int begin_idx, const std::vector& labels, FunctionAtomicOps* container, DecompWarnings& warnings, - bool hint_inline_asm) { + bool hint_inline_asm, + bool block_ends_in_asm_branch) { container->block_id_to_first_atomic_op.push_back(container->ops.size()); for (auto& instr = begin; instr < end;) { // how many instructions can we look at, at most? @@ -1859,7 +1882,8 @@ int convert_block_to_atomic_ops(int begin_idx, if (!converted) { // try 1 instruction - op = convert_1(*instr, op_idx, hint_inline_asm); + bool force_asm_branch = n_instr == 1 && block_ends_in_asm_branch; + op = convert_1(*instr, op_idx, hint_inline_asm, force_asm_branch); if (op) { converted = true; length = 1; @@ -1899,10 +1923,12 @@ int convert_block_to_atomic_ops(int begin_idx, return int(container->ops.size()); } -FunctionAtomicOps convert_function_to_atomic_ops(const Function& func, - const std::vector& labels, - DecompWarnings& warnings, - bool hint_inline_asm) { +FunctionAtomicOps convert_function_to_atomic_ops( + const Function& func, + const std::vector& labels, + DecompWarnings& warnings, + bool hint_inline_asm, + const std::unordered_set& blocks_ending_in_asm_branches) { FunctionAtomicOps result; int last_op = 0; @@ -1912,8 +1938,9 @@ FunctionAtomicOps convert_function_to_atomic_ops(const Function& func, if (block.end_word > block.start_word) { auto begin = func.instructions.begin() + block.start_word; auto end = func.instructions.begin() + block.end_word; - last_op = convert_block_to_atomic_ops(block.start_word, begin, end, labels, &result, warnings, - hint_inline_asm); + last_op = convert_block_to_atomic_ops( + block.start_word, begin, end, labels, &result, warnings, hint_inline_asm, + blocks_ending_in_asm_branches.find(i) != blocks_ending_in_asm_branches.end()); if (i == int(func.basic_blocks.size()) - 1) { // we're the last block. insert the function end op. result.ops.push_back(std::make_unique(int(result.ops.size()))); diff --git a/decompiler/analysis/atomic_op_builder.h b/decompiler/analysis/atomic_op_builder.h index 4858deafc3..9b2281efcd 100644 --- a/decompiler/analysis/atomic_op_builder.h +++ b/decompiler/analysis/atomic_op_builder.h @@ -48,13 +48,16 @@ int convert_block_to_atomic_ops(int begin_idx, const std::vector& labels, FunctionAtomicOps* container, DecompWarnings& warnings, - bool inline_asm_hint = false); + bool inline_asm_hint = false, + bool block_ends_in_asm_branch = false); /*! * Convert an entire function to AtomicOps */ -FunctionAtomicOps convert_function_to_atomic_ops(const Function& func, - const std::vector& labels, - DecompWarnings& warnings, - bool hint_inline_asm); +FunctionAtomicOps convert_function_to_atomic_ops( + const Function& func, + const std::vector& labels, + DecompWarnings& warnings, + bool hint_inline_asm, + const std::unordered_set& blocks_ending_in_asm_branches); } // namespace decompiler \ No newline at end of file diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index 3c304cee86..ada72f4021 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -2841,10 +2841,10 @@ :flag-assert #xe0000006c (:methods (new (symbol type basic vector) _type_ 0) - (dummy-9 (_type_) int 9) - (dummy-10 (_type_ sound-name) int 10) - (dummy-11 (_type_ vector) int 11) - (dummy-12 (_type_ int) int 12) + (update! (_type_) int 9) + (change-sound! (_type_ sound-name) int 10) + (update-trans! (_type_ vector) int 11) + (update-vol! (_type_ int) int 12) (stop! (_type_) int 13) ) ) @@ -11534,9 +11534,9 @@ (:methods (dummy-9 (_type_) none 9) (dummy-10 (_type_) none 10) - (PERF-COUNTER-REG-ACCESS-11 (_type_) none 11) - (PERF-COUNTER-REG-ACCESS-12 (_type_) none 12) - (update-wait-stats-13 (_type_ uint uint uint) none 13) + (reset! (_type_) none 11) + (read! (_type_) none 12) + (update-wait-stats (_type_ uint uint uint) none 13) ) ) @@ -13498,8 +13498,8 @@ (:methods (init-cam-float-seeker (_type_ float float float float) none 9) (copy-cam-float-seeker (_type_ _type_) none 10) - (TODO-RENAME-11 (_type_ float) none 11) - (TODO-RENAME-12 (_type_ float) float 12) + (update! (_type_ float) none 11) + (jump-to-target! (_type_ float) float 12) ) ) @@ -13515,8 +13515,8 @@ :size-assert #x3c :flag-assert #xb0000003c (:methods - (TODO-RENAME-9 (_type_ vector float float float) none 9) - (TODO-RENAME-10 (_type_ vector) none 10) + (init! (_type_ vector float float float) none 9) + (update! (_type_ vector) none 10) ) ) @@ -14637,7 +14637,7 @@ (define-extern sound-buffer-dump (function int)) (define-extern swap-sound-buffers (function vector vector float int)) (define-extern free-last-sound-buffer-entry (function int)) -(define-extern sound-basic-cb function) +(define-extern sound-basic-cb (function int (pointer int32) none)) (define-extern sound-set-volume (function uint float int)) (define-extern sound-set-reverb (function int float float uint int)) (define-extern sound-pause (function sound-id int)) diff --git a/decompiler/config/jak1_ntsc_black_label/hacks.jsonc b/decompiler/config/jak1_ntsc_black_label/hacks.jsonc index e1e7bc6bee..f6af6c7fe7 100644 --- a/decompiler/config/jak1_ntsc_black_label/hacks.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/hacks.jsonc @@ -104,10 +104,6 @@ // collide-mesh-h "(method 11 collide-mesh-cache)", - // actor-link-h (BUG) - "(method 21 actor-link-info)", // BUG: sc cfg / cfg-ir bug - "(method 20 actor-link-info)", - // collide-func "moving-sphere-triangle-intersect", // P: weird branching "collide-do-primitives", // P: asm branching @@ -434,12 +430,8 @@ // (these are NOT actually asm functions) "(method 15 sync-info)", // NEED *res-static-buf* "(method 15 sync-info-eased)", // NEED *res-static-buf* - "(method 15 sync-info-paused)", // NEED *res-static-buf* + "(method 15 sync-info-paused)" // NEED *res-static-buf* - // stats-h - // May or may not be inline-asm but they are related to perf counter registers that only live on the PS2 - "(method 11 perf-stat)", - "(method 12 perf-stat)" ], // these functions use pairs and the decompiler @@ -539,6 +531,11 @@ "load-game-text-info": [12, 13, 14, 18], - "real-main-draw-hook": [75, 77] + "real-main-draw-hook": [75, 77], + + "(method 12 perf-stat)": [0], + "(method 11 perf-stat)": [0], + "(method 20 actor-link-info)": [2], + "(method 21 actor-link-info)": [2] } } diff --git a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc index 4790bcee21..603f0d8293 100644 --- a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc @@ -334,6 +334,8 @@ [64, "vector"] ], + "(method 20 actor-link-info)": [[16, "event-message-block"]], + "(method 21 actor-link-info)": [[16, "event-message-block"]], "(method 23 actor-link-info)": [[16, "event-message-block"]], "(method 24 actor-link-info)": [[16, "event-message-block"]], diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index a7123bde12..072577c196 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -637,8 +637,6 @@ "num-func-chan": [[8, "v1", "joint-control-channel"]], - "cspace-by-name-no-fail": [[[0, 100], "v0", "cspace"]], - "shrubbery-login-post-texture": [ //[[13, 41], "a3", "qword"], // [[13, 41], "a2", "qword"] @@ -656,7 +654,6 @@ "(method 3 sparticle-cpuinfo)": [[106, "f0", "float"]], - "cspace-by-name-no-fail": [[[0, 100], "v0", "cspace"]], "camera-teleport-to-entity": [[9, "a0", "transform"]], diff --git a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc index a1a9576b93..2eb7e03098 100644 --- a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc @@ -1711,6 +1711,16 @@ } }, + "(method 20 actor-link-info)": { + "args": ["obj", "message"], + "vars": { + "s4-0":"iter", + "s5-0":"result", + "a0-1":"proc", + "a1-1":"msg-block" + } + }, + // LEVEL "lookup-level-info": { "args": ["name"], @@ -2389,5 +2399,17 @@ "s2-0":"grav-rt-body", "a1-5":"vel-rt-body" } + }, + + "(method 11 cam-float-seeker)" : { + "args": ["obj", "offset"], + "vars": { + "f1-2":"pos-error", + "f0-5":"partial-velocity-limit", + "f1-3":"daccel", + "f1-6":"abs-vel", + "f0-6":"abs-vel-limit", + "f0-10":"dpos" + } } } diff --git a/goal_src/engine/camera/camera-h.gc b/goal_src/engine/camera/camera-h.gc index 19fc1d4e1f..9f7c63518a 100644 --- a/goal_src/engine/camera/camera-h.gc +++ b/goal_src/engine/camera/camera-h.gc @@ -113,7 +113,9 @@ ) ) -;; definition of type cam-float-seeker +;; cam-float-seeker moves value toward target in a smooth way, with second order dynamics. +;; The acceleration is proportional to the error. +;; This isn't stable by itself, so there is a velocity limit (proportional to distance) applied. (deftype cam-float-seeker (structure) ((target float :offset-assert 0) (value float :offset-assert 4) @@ -129,8 +131,8 @@ (:methods (init-cam-float-seeker (_type_ float float float float) none 9) (copy-cam-float-seeker (_type_ _type_) none 10) - (TODO-RENAME-11 (_type_ float) none 11) - (TODO-RENAME-12 (_type_ float) float 12) + (update! (_type_ float) none 11) + (jump-to-target! (_type_ float) float 12) ) ) @@ -158,35 +160,37 @@ (none) ) -;; definition for method 11 of type cam-float-seeker -;; INFO: Return type mismatch int vs none. -(defmethod TODO-RENAME-11 cam-float-seeker ((obj cam-float-seeker) (arg0 float)) - (let ((f0-0 0.0)) - ) - (let ((f0-1 0.0)) - ) - (let* ((f1-2 (- (+ (-> obj target) arg0) (-> obj value))) - (f0-5 (* (-> obj max-partial) (fabs f1-2))) +(defmethod update! cam-float-seeker ((obj cam-float-seeker) (offset float)) + "Seek toward target + offset" + (let* ((pos-error (- (+ (-> obj target) offset) (-> obj value))) + ;; the velocity limit based on distance to target + (partial-velocity-limit (* (-> obj max-partial) (fabs pos-error))) ) - (let ((f1-3 (* f1-2 (* (-> obj accel) (-> *display* time-adjust-ratio))))) - (set! (-> obj vel) (+ (-> obj vel) f1-3)) + + ;; apply acceleration to velocity + (let ((daccel (* pos-error (* (-> obj accel) (-> *display* time-adjust-ratio))))) + (+! (-> obj vel) daccel) ) - (let ((f1-6 (fabs (-> obj vel))) - (f0-6 (fmin f0-5 (-> obj max-vel))) + + ;; limit velocity using max-vel and the partial limit + (let ((abs-vel (fabs (-> obj vel))) + (abs-vel-limit (fmin partial-velocity-limit (-> obj max-vel))) ) - (if (< f0-6 f1-6) - (set! (-> obj vel) (* (-> obj vel) (/ f0-6 f1-6))) + (if (< abs-vel-limit abs-vel) + (set! (-> obj vel) (* (-> obj vel) (/ abs-vel-limit abs-vel))) ) ) ) - (let ((f0-10 (* (-> obj vel) (-> *display* time-adjust-ratio)))) - (set! (-> obj value) (+ (-> obj value) f0-10)) + + ;; update position + (let ((dpos (* (-> obj vel) (-> *display* time-adjust-ratio)))) + (+! (-> obj value) dpos) ) (none) ) -;; definition for method 12 of type cam-float-seeker -(defmethod TODO-RENAME-12 cam-float-seeker ((obj cam-float-seeker) (arg0 float)) +(defmethod jump-to-target! cam-float-seeker ((obj cam-float-seeker) (arg0 float)) + "Jump to target + arg0 and set velocity to 0" (set! (-> obj value) (+ (-> obj target) arg0)) (let ((f0-2 0.0)) (set! (-> obj vel) f0-2) @@ -194,7 +198,8 @@ ) ) -;; definition of type cam-vector-seeker +;; very similar to cam-float-seeker but works on an +;; entire vector. (deftype cam-vector-seeker (structure) ((target vector :inline :offset-assert 0) (value vector :inline :offset-assert 16) @@ -207,15 +212,12 @@ :size-assert #x3c :flag-assert #xb0000003c (:methods - (TODO-RENAME-9 (_type_ vector float float float) none 9) - (TODO-RENAME-10 (_type_ vector) none 10) + (init! (_type_ vector float float float) none 9) + (update! (_type_ vector) none 10) ) ) -;; definition for method 9 of type cam-vector-seeker -;; INFO: Return type mismatch int vs none. -;; Used lq/sq -(defmethod TODO-RENAME-9 cam-vector-seeker ((obj cam-vector-seeker) (arg0 vector) (arg1 float) (arg2 float) (arg3 float)) +(defmethod init! cam-vector-seeker ((obj cam-vector-seeker) (arg0 vector) (arg1 float) (arg2 float) (arg3 float)) (cond (arg0 (set! (-> obj target quad) (-> arg0 quad)) @@ -230,16 +232,12 @@ (set! (-> obj accel) arg1) (set! (-> obj max-vel) arg2) (set! (-> obj max-partial) arg3) + 0 (none) ) - -;; definition for method 10 of type cam-vector-seeker -;; INFO: Return type mismatch int vs none. -;; TODO - vector-float*! replacement -(defmethod TODO-RENAME-10 cam-vector-seeker ((obj cam-vector-seeker) (arg0 vector)) +(defmethod update! cam-vector-seeker ((obj cam-vector-seeker) (arg0 vector)) (let ((gp-0 (new 'stack-no-clear 'vector))) - 0.0 (cond (arg0 (vector+! gp-0 (-> obj target) arg0) @@ -271,7 +269,6 @@ (none) ) -;; definition of type cam-rotation-tracker (deftype cam-rotation-tracker (structure) ((inv-mat matrix :inline :offset-assert 0) (no-follow basic :offset-assert 64) diff --git a/goal_src/engine/debug/stats-h.gc b/goal_src/engine/debug/stats-h.gc index 7df7622dc8..067f0e30fa 100644 --- a/goal_src/engine/debug/stats-h.gc +++ b/goal_src/engine/debug/stats-h.gc @@ -51,9 +51,9 @@ (:methods (dummy-9 (_type_) none 9) (dummy-10 (_type_) none 10) - (PERF-COUNTER-REG-ACCESS-11 (_type_) none 11) - (PERF-COUNTER-REG-ACCESS-12 (_type_) none 12) - (update-wait-stats-13 (_type_ uint uint uint) none 13) + (reset! (_type_) none 11) + (read! (_type_) none 12) + (update-wait-stats (_type_ uint uint uint) none 13) ) ) @@ -68,17 +68,45 @@ ;; failed to figure out what this is: (set! (-> perf-stat-array heap-base) (the-as uint 52)) -(defmethod PERF-COUNTER-REG-ACCESS-11 perf-stat ((obj perf-stat)) +(defmethod reset! perf-stat ((obj perf-stat)) "Perfomance counters are not implemented, so this does nothing." + #| + (let ((v1-0 (-> obj ctrl))) + (+! (-> obj count) 1) + (b! (zero? v1-0) cfg-2) + (.mtc0 Perf r0-0) + (.sync.l) + (.sync.p) + (.mtpc pcr0 r0-0) + (.mtpc pcr1 r0-0) + (.sync.l) + (.sync.p) + (.mtc0 Perf v1-0) + ) + (.sync.l) + (.sync.p) + (label cfg-2) + |# (none) ) -(defmethod PERF-COUNTER-REG-ACCESS-12 perf-stat ((obj perf-stat)) +(defmethod read! perf-stat ((obj perf-stat)) "Perfomance counters are not implemented, so this does nothing." + #| + (b! (zero? (-> obj ctrl)) cfg-2) + (.mtc0 Perf r0-0) + (.sync.l) + (.sync.p) + (.mfpc v1-1 pcr0) + (+! (-> obj accum0) (the-as uint v1-1)) + (.mfpc v1-3 pcr1) + (+! (-> obj accum1) (the-as uint v1-3)) + (label cfg-2) + |# (none) ) -(defmethod update-wait-stats-13 perf-stat ((obj perf-stat) (arg0 uint) (arg1 uint) (arg2 uint)) +(defmethod update-wait-stats perf-stat ((obj perf-stat) (arg0 uint) (arg1 uint) (arg2 uint)) (when (nonzero? (-> obj ctrl)) (set! (-> obj to-vu0-waits) (+ (-> obj to-vu0-waits) arg0)) (set! (-> obj to-spr-waits) (+ (-> obj to-spr-waits) arg1)) diff --git a/goal_src/engine/entity/actor-link-h.gc b/goal_src/engine/entity/actor-link-h.gc index b39d37666c..3f236442d2 100644 --- a/goal_src/engine/entity/actor-link-h.gc +++ b/goal_src/engine/entity/actor-link-h.gc @@ -5,10 +5,21 @@ ;; name in dgo: actor-link-h ;; dgos: GAME, ENGINE -;; The exact details of actor-link-h are not yet understood, but this system links entities to processes. +;; The exact details of actor-link-h are not yet understood, but this system caches lookups for entities/process. +;; Each entity has a res-lump. Some entities may reference other entities. This is done with an element in a res-lump +;; than contains named lists (possibly of size 1) of other entities. These lists may store entities by a name, or by an +;; actor id (AID). -;; One entity may have a reference to another entity, either by name or by ID. -;; Some common ones are next-actor and prev-actor. +;; This process is slow: it involves going from a process, to its entity, to doing a res-lump, deciding if you have an AID/string, +;; then looking up the other actor by name, or AID. Lookup by name is extremely slow, as it involves checking each actor's name +;; a res lookup per every actor in every level. Lookup by aid isn't bad, but is still a binary search through all actors. + +;; The next-actor and prev-actor res build a linked list of actors. + +;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Initial Lookup Functions +;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; these functions find actors before we've built the links. (defun entity-actor-lookup ((lump res-lump) (name symbol) (idx int)) "Given an entity (the res-lump), look up a reference to another entity and return that entity." @@ -29,6 +40,7 @@ ) ) ) + (the-as entity-actor ;; check in range, and lookup succesful (when (and v1-1 (< idx (the-as int (-> sv-16 elt-count)))) @@ -62,7 +74,11 @@ ) ;; entity-actors are part of a linked list of entities. -;; It is not yet known where these are allocated. +;; these prevent you from looking up next-actor, prev-actor again and again to iterate. +;; The actor-link-info for an entity is stored in that res-lump's "extra" +;; of course, this only works for cases where each entity has at most 1 process. + +;; These are allocated on the process heap of the entity's process. (deftype actor-link-info (basic) ((process process :offset-assert 4) ;; process for this entity @@ -94,6 +110,10 @@ ) ) +;;;;;;;;;;;;;;;; +;; Link Setup +;;;;;;;;;;;;;;;; + (defmethod next-actor entity-actor ((obj entity-actor)) "Utility function to look up the next actor in the list, assuming we don't have actor-link-info yet." ;; look up reference to next-actor - this is slow. @@ -124,6 +144,9 @@ ) ) +;;;;;;;;;;;;;;;;;;;; +;; Access +;;;;;;;;;;;;;;;;;;;; ;; These methods can now be used to get next/prev more efficiently, without having to do a res lookup. (defmethod get-next actor-link-info ((obj actor-link-info)) diff --git a/goal_src/engine/gfx/vis/bsp-h.gc b/goal_src/engine/gfx/vis/bsp-h.gc index a285577db2..c42e709626 100644 --- a/goal_src/engine/gfx/vis/bsp-h.gc +++ b/goal_src/engine/gfx/vis/bsp-h.gc @@ -5,6 +5,12 @@ ;; name in dgo: bsp-h ;; dgos: GAME, ENGINE +;; The level's layout is stored in a BSP. +;; There is a bsp-header that contains the actual nodes +;; as well as lists of entities and other stuff found in the level. +;; As a result, it is more than just a BSP. +;; The final file in the level DGO is the BSP, and is the largest file. + (declare-type entity-camera basic) (deftype bsp-node (structure) @@ -59,6 +65,7 @@ ) ) +;; seems to be unused? (deftype game-level (basic) ((master-bsp basic :offset-assert 4) ) diff --git a/goal_src/engine/sound/gsound-h.gc b/goal_src/engine/sound/gsound-h.gc index d80207afdf..662275512c 100644 --- a/goal_src/engine/sound/gsound-h.gc +++ b/goal_src/engine/sound/gsound-h.gc @@ -399,10 +399,10 @@ :flag-assert #xe0000006c (:methods (new (symbol type basic vector) _type_ 0) - (dummy-9 (_type_) int 9) - (dummy-10 (_type_ sound-name) int 10) - (dummy-11 (_type_ vector) int 11) - (dummy-12 (_type_ int) int 12) + (update! (_type_) int 9) + (change-sound! (_type_ sound-name) int 10) + (update-trans! (_type_ vector) int 11) + (update-vol! (_type_ int) int 12) (stop! (_type_) int 13) ) ) diff --git a/goal_src/engine/sound/gsound.gc b/goal_src/engine/sound/gsound.gc index beb60fabdf..8be34f29be 100644 --- a/goal_src/engine/sound/gsound.gc +++ b/goal_src/engine/sound/gsound.gc @@ -5,7 +5,8 @@ ;; name in dgo: gsound ;; dgos: GAME, ENGINE - +;; The sound playback stuff is all on the IOP so we use IOP RPCs to control it. +;; Ther is a "player" that plays sound effects, and a "loader" that takes care of loading banks. (define *sound-player-rpc* (new 'global 'rpc-buffer-pair (the uint (size-of sound-rpc-union)) (the-as uint 128) RPC-SOUND-PLAYER)) (define *sound-loader-rpc* (new 'global 'rpc-buffer-pair (the uint (size-of sound-rpc-union)) (the-as uint 1) RPC-SOUND-LOADER)) @@ -101,6 +102,8 @@ 0 ) +;; Note: we check the IRX version on load to make sure that the OVERLORD driver is the right version +;; and has loaded successfully. (check-irx-version) @@ -276,7 +279,11 @@ 0 ) -;; sound-basic-cb +(defun sound-basic-cb ((arg0 int) (arg1 (pointer int32))) + "This function is unused." + (set! (-> arg1 0) arg0) + (none) + ) (defun sound-trans-convert ((dest vector3w) (src vector)) (let ((vec (if src src (ear-trans)))) @@ -327,6 +334,17 @@ 0 ) +(defun sound-set-reverb ((arg0 int) (arg1 float) (arg2 float) (arg3 uint)) + (let ((cmd (the-as sound-rpc-set-reverb (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-reverb)) + (set! (-> cmd core) arg3) + (set! (-> cmd reverb) arg0) + (set! (-> cmd left) (the-as uint (the int (* 32767.0 arg1)))) + (set! (-> cmd right) (the-as uint (the int (* 32767.0 arg2)))) + ) + 0 + ) + (defun sound-set-ear-trans ((ear-trans vector) (cam-trans vector) (cam-angle float)) (let ((cmd (the sound-rpc-set-ear-trans (get-sound-buffer-entry)))) @@ -591,17 +609,18 @@ (defun-extern effect-param->sound-spec sound-spec sound-play-parms int sound-spec) (define-extern *debug-effect-control* symbol) -(defmethod dummy-9 ambient-sound ((obj ambient-sound)) +(defmethod update! ambient-sound ((obj ambient-sound)) + "Called once per frame to update the sound playback" (if (not *ambient-sound-class*) - (return (the int #f)) - ) + (return (the int #f)) + ) (cond ((-> obj spec) (when (or (< (the-as int (-> obj time-base)) 0) (>= (the-as int (-> *display* base-frame-counter)) (the-as int (-> obj play-time))) - ) + ) (when (>= (the-as int (-> obj time-base)) 0) (set! (-> obj play-time) (+ (-> *display* base-frame-counter) (-> obj time-base) @@ -610,64 +629,64 @@ (set! (-> obj playing-id) (new-sound-id)) ) (let ((spec (-> obj spec))) - (when (= spec *ambient-spec*) - (set! (-> spec volume) (-> obj volume)) - (set! (-> spec pitch-mod) (-> obj pitch)) - (set! (-> spec bend) 0) - (set! (-> spec sound-name) (-> obj name)) - (set! (-> spec fo-max) (-> obj falloff-far)) - (set! (-> spec mask) (the-as uint 0)) - (if (-> obj params) + (when (= spec *ambient-spec*) + (set! (-> spec volume) (-> obj volume)) + (set! (-> spec pitch-mod) (-> obj pitch)) + (set! (-> spec bend) 0) + (set! (-> spec sound-name) (-> obj name)) + (set! (-> spec fo-max) (-> obj falloff-far)) + (set! (-> spec mask) (the-as uint 0)) + (if (-> obj params) (effect-param->sound-spec spec (-> obj params) (-> obj param-count)) ) - ) - (if (and (nonzero? (-> spec fo-max)) - (< (* 4096.0 (the float (-> spec fo-max))) - (vector-vector-distance (ear-trans) (-> obj trans)))) + ) + (if (and (nonzero? (-> spec fo-max)) + (< (* 4096.0 (the float (-> spec fo-max))) + (vector-vector-distance (ear-trans) (-> obj trans)))) (return 0) ) - (when (and *debug-effect-control* (>= (the-as int (-> obj time-base)) 0)) - (with-pp - (format #t "(~5D) effect sound ~A ~G " - (-> *display* base-frame-counter) - (-> pp name) - (-> spec sound-name-char)) - (format #t "volume: ~f pitch-mod: ~f~%" - (* (1/ 10.24) (the float (-> spec volume))) - (* 0.000656168 (the float (-> spec pitch-mod)))) - ) + (when (and *debug-effect-control* (>= (the-as int (-> obj time-base)) 0)) + (with-pp + (format #t "(~5D) effect sound ~A ~G " + (-> *display* base-frame-counter) + (-> pp name) + (-> spec sound-name-char)) + (format #t "volume: ~f pitch-mod: ~f~%" + (* (1/ 10.24) (the float (-> spec volume))) + (* 0.000656168 (the float (-> spec pitch-mod)))) ) - (let ((spec-volume (-> spec volume))) - (set! (-> spec volume) (-> obj volume)) - (set! (-> obj playing-id) (sound-play-by-spec spec (-> obj playing-id) (-> obj trans))) - (set! (-> spec volume) spec-volume) - ) ) + (let ((spec-volume (-> spec volume))) + (set! (-> spec volume) (-> obj volume)) + (set! (-> obj playing-id) (sound-play-by-spec spec (-> obj playing-id) (-> obj trans))) + (set! (-> spec volume) spec-volume) + ) + ) ) ) (else (cond ((< (the-as int (-> obj time-base)) 0) (set! (-> obj playing-id) (sound-play-by-name - (-> obj name) - (-> obj playing-id) - (-> obj volume) - (-> obj pitch) - 0 - (the-as uint 1) - (-> obj trans))) + (-> obj name) + (-> obj playing-id) + (-> obj volume) + (-> obj pitch) + 0 + (the-as uint 1) + (-> obj trans))) ) (else (when (>= (the-as int (-> *display* base-frame-counter)) (the-as int (-> obj play-time))) (set! (-> obj playing-id) (sound-play-by-name - (-> obj name) - (new-sound-id) - (-> obj volume) - (-> obj pitch) - 0 - (the-as uint 1) - (-> obj trans))) + (-> obj name) + (new-sound-id) + (-> obj volume) + (-> obj pitch) + 0 + (the-as uint 1) + (-> obj trans))) (set! (-> obj play-time) (+ (-> *display* base-frame-counter) (-> obj time-base) (the-as uint (rand-vu-int-count (the-as int (-> obj time-random)))) @@ -687,8 +706,8 @@ 0 ) -(defmethod dummy-11 ambient-sound ((obj ambient-sound) (sound-trans vector)) - +(defmethod update-trans! ambient-sound ((obj ambient-sound) (sound-trans vector)) + "Update the position of the thing playing the sound" (set! (-> obj trans quad) (-> sound-trans quad)) (when (nonzero? (-> obj playing-id)) (let ((cmd (the sound-rpc-set-param (get-sound-buffer-entry)))) @@ -704,7 +723,23 @@ 0 ) -(defmethod dummy-10 ambient-sound ((obj ambient-sound) (name sound-name)) +(defmethod update-vol! ambient-sound ((obj ambient-sound) (arg0 int)) + "Update the volume of the sound" + (when (nonzero? (-> obj playing-id)) + (let ((cmd (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-param)) + (set! (-> cmd id) (-> obj playing-id)) + (set! (-> cmd parms volume) (the int (* 10.24 (the float arg0)))) + (set! (-> cmd parms mask) (the-as uint 1)) + (-> cmd id) + ) + ) + (set! (-> obj volume) (the int (* 10.24 (the float arg0)))) + 0 + ) + +(defmethod change-sound! ambient-sound ((obj ambient-sound) (name sound-name)) + "Change the sound being played" (when (not (sound-name= (-> obj name) name)) (stop! obj) (set! (-> obj playing-id) (new-sound-id)) @@ -1007,6 +1042,3 @@ (flava-table-add 'credits (49 2) ) - - - diff --git a/goal_src/engine/target/target-h.gc b/goal_src/engine/target/target-h.gc index d5be2b8aad..2ad577faac 100644 --- a/goal_src/engine/target/target-h.gc +++ b/goal_src/engine/target/target-h.gc @@ -42,6 +42,8 @@ ) ) +(define-perm *target* target #f) + (deftype sidekick (process-drawable) ((control control-info :offset 112) (anim-seed uint64 :offset 192) @@ -54,7 +56,6 @@ ;; inherited inspect of process-drawable ) -(define-perm *target* target #f) (define-perm *sidekick* sidekick #f) diff --git a/goal_src/engine/ui/progress-h.gc b/goal_src/engine/ui/progress-h.gc index 92cbe15957..2d070bbb26 100644 --- a/goal_src/engine/ui/progress-h.gc +++ b/goal_src/engine/ui/progress-h.gc @@ -5,6 +5,10 @@ ;; name in dgo: progress-h ;; dgos: GAME, ENGINE +;; progress screen display-state enum: +;; 32 - nocd +;; 33 - dirtycd + (deftype count-info (structure) ((money-count int32 :offset-assert 0) (buzzer-count int32 :offset-assert 4) diff --git a/test/decompiler/FormRegressionTest.cpp b/test/decompiler/FormRegressionTest.cpp index ffaba73a7a..4f960e4b94 100644 --- a/test/decompiler/FormRegressionTest.cpp +++ b/test/decompiler/FormRegressionTest.cpp @@ -164,7 +164,7 @@ std::unique_ptr FormRegressionTest::make_function( // convert instruction to atomic ops DecompWarnings warnings; - auto ops = convert_function_to_atomic_ops(test->func, program.labels, warnings, false); + auto ops = convert_function_to_atomic_ops(test->func, program.labels, warnings, false, {}); test->func.ir2.atomic_ops = std::make_shared(std::move(ops)); test->func.ir2.atomic_ops_succeeded = true; test->func.ir2.env.set_end_var(test->func.ir2.atomic_ops->end_op().return_var()); diff --git a/test/decompiler/reference/decompiler-macros.gc b/test/decompiler/reference/decompiler-macros.gc index 6778c18b22..fb49fdd674 100644 --- a/test/decompiler/reference/decompiler-macros.gc +++ b/test/decompiler/reference/decompiler-macros.gc @@ -212,4 +212,25 @@ (set! (-> pp next-state) ,next-state) ((the (function _varargs_ object) enter-state) ,@args) ) + ) + +(defmacro static-sound-name (str) + "Convert a string constant to a static sound-name." + + ;; all this is done at compile-time so we can come up with 2 + ;; 64-bit constants to use + (when (> (string-length str) 16) + (error "static-sound-name got a string that is too long") + ) + (let ((lo-val 0) + (hi-val 0) + ) + (dotimes (i (string-length str)) + (if (>= i 8) + (+! hi-val (ash (string-ref str i) (* 8 (- i 8)))) + (+! lo-val (ash (string-ref str i) (* 8 i))) + ) + ) + `(new 'static 'sound-name :lo ,lo-val :hi ,hi-val) + ) ) \ No newline at end of file diff --git a/test/decompiler/reference/engine/camera/camera-h_REF.gc b/test/decompiler/reference/engine/camera/camera-h_REF.gc index d5967ae39d..13fb326a95 100644 --- a/test/decompiler/reference/engine/camera/camera-h_REF.gc +++ b/test/decompiler/reference/engine/camera/camera-h_REF.gc @@ -218,8 +218,8 @@ (:methods (init-cam-float-seeker (_type_ float float float float) none 9) (copy-cam-float-seeker (_type_ _type_) none 10) - (TODO-RENAME-11 (_type_ float) none 11) - (TODO-RENAME-12 (_type_ float) float 12) + (update! (_type_ float) none 11) + (jump-to-target! (_type_ float) float 12) ) ) @@ -269,32 +269,33 @@ ;; definition for method 11 of type cam-float-seeker ;; INFO: Return type mismatch int vs none. -(defmethod TODO-RENAME-11 cam-float-seeker ((obj cam-float-seeker) (arg0 float)) +(defmethod update! cam-float-seeker ((obj cam-float-seeker) (offset float)) 0.0 0.0 - (let* ((f1-2 (- (+ (-> obj target) arg0) (-> obj value))) - (f0-5 (* (-> obj max-partial) (fabs f1-2))) + (let* ((pos-error (- (+ (-> obj target) offset) (-> obj value))) + (partial-velocity-limit (* (-> obj max-partial) (fabs pos-error))) ) - (let ((f1-3 (* f1-2 (* (-> obj accel) (-> *display* time-adjust-ratio))))) - (+! (-> obj vel) f1-3) + (let + ((daccel (* pos-error (* (-> obj accel) (-> *display* time-adjust-ratio))))) + (+! (-> obj vel) daccel) ) - (let ((f1-6 (fabs (-> obj vel))) - (f0-6 (fmin f0-5 (-> obj max-vel))) + (let ((abs-vel (fabs (-> obj vel))) + (abs-vel-limit (fmin partial-velocity-limit (-> obj max-vel))) ) - (if (< f0-6 f1-6) - (set! (-> obj vel) (* (-> obj vel) (/ f0-6 f1-6))) + (if (< abs-vel-limit abs-vel) + (set! (-> obj vel) (* (-> obj vel) (/ abs-vel-limit abs-vel))) ) ) ) - (let ((f0-10 (* (-> obj vel) (-> *display* time-adjust-ratio)))) - (+! (-> obj value) f0-10) + (let ((dpos (* (-> obj vel) (-> *display* time-adjust-ratio)))) + (+! (-> obj value) dpos) ) 0 (none) ) ;; definition for method 12 of type cam-float-seeker -(defmethod TODO-RENAME-12 cam-float-seeker ((obj cam-float-seeker) (arg0 float)) +(defmethod jump-to-target! cam-float-seeker ((obj cam-float-seeker) (arg0 float)) (set! (-> obj value) (+ (-> obj target) arg0)) (let ((f0-2 0.0)) (set! (-> obj vel) f0-2) @@ -315,8 +316,8 @@ :size-assert #x3c :flag-assert #xb0000003c (:methods - (TODO-RENAME-9 (_type_ vector float float float) none 9) - (TODO-RENAME-10 (_type_ vector) none 10) + (init! (_type_ vector float float float) none 9) + (update! (_type_ vector) none 10) ) ) @@ -336,7 +337,7 @@ ;; INFO: Return type mismatch int vs none. ;; Used lq/sq (defmethod - TODO-RENAME-9 + init! cam-vector-seeker ((obj cam-vector-seeker) (arg0 vector) (arg1 float) (arg2 float) (arg3 float)) (cond @@ -359,10 +360,7 @@ ;; definition for method 10 of type cam-vector-seeker ;; INFO: Return type mismatch int vs none. -(defmethod - TODO-RENAME-10 - cam-vector-seeker - ((obj cam-vector-seeker) (arg0 vector)) +(defmethod update! cam-vector-seeker ((obj cam-vector-seeker) (arg0 vector)) (let ((gp-0 (new 'stack-no-clear 'vector))) 0.0 (cond @@ -745,3 +743,7 @@ ;; failed to figure out what this is: 0 + + + + diff --git a/test/decompiler/reference/engine/debug/stats-h_REF.gc b/test/decompiler/reference/engine/debug/stats-h_REF.gc index 2914affca2..5b8633a63c 100644 --- a/test/decompiler/reference/engine/debug/stats-h_REF.gc +++ b/test/decompiler/reference/engine/debug/stats-h_REF.gc @@ -67,9 +67,9 @@ (:methods (dummy-9 (_type_) none 9) (dummy-10 (_type_) none 10) - (PERF-COUNTER-REG-ACCESS-11 (_type_) none 11) - (PERF-COUNTER-REG-ACCESS-12 (_type_) none 12) - (update-wait-stats-13 (_type_ uint uint uint) none 13) + (reset! (_type_) none 11) + (read! (_type_) none 12) + (update-wait-stats (_type_ uint uint uint) none 13) ) ) @@ -114,15 +114,64 @@ (set! (-> perf-stat-array heap-base) (the-as uint 52)) ;; definition for method 11 of type perf-stat -;; ERROR: function was not converted to expressions. Cannot decompile. +;; INFO: Return type mismatch int vs none. +;; WARN: Unsupported inline assembly instruction kind - [mtc0 Perf, r0] +;; WARN: Unsupported inline assembly instruction kind - [sync.l] +;; WARN: Unsupported inline assembly instruction kind - [sync.p] +;; WARN: Unsupported inline assembly instruction kind - [mtpc pcr0, r0] +;; WARN: Unsupported inline assembly instruction kind - [mtpc pcr1, r0] +;; WARN: Unsupported inline assembly instruction kind - [sync.l] +;; WARN: Unsupported inline assembly instruction kind - [sync.p] +;; WARN: Unsupported inline assembly instruction kind - [mtc0 Perf, v1] +;; WARN: Unsupported inline assembly instruction kind - [sync.l] +;; WARN: Unsupported inline assembly instruction kind - [sync.p] +(defmethod reset! perf-stat ((obj perf-stat)) + (local-vars (r0-0 none)) + (let ((v1-0 (-> obj ctrl))) + (+! (-> obj count) 1) + (b! (zero? v1-0) cfg-2) + (.mtc0 Perf r0-0) + (.sync.l) + (.sync.p) + (.mtpc pcr0 r0-0) + (.mtpc pcr1 r0-0) + (.sync.l) + (.sync.p) + (.mtc0 Perf v1-0) + ) + (.sync.l) + (.sync.p) + (label cfg-2) + 0 + (none) + ) ;; definition for method 12 of type perf-stat -;; ERROR: function was not converted to expressions. Cannot decompile. +;; INFO: Return type mismatch int vs none. +;; WARN: Unsupported inline assembly instruction kind - [mtc0 Perf, r0] +;; WARN: Unsupported inline assembly instruction kind - [sync.l] +;; WARN: Unsupported inline assembly instruction kind - [sync.p] +;; WARN: Unsupported inline assembly instruction kind - [mfpc v1, pcr0] +;; WARN: Unsupported inline assembly instruction kind - [mfpc v1, pcr1] +(defmethod read! perf-stat ((obj perf-stat)) + (local-vars (r0-0 none) (v1-1 int) (v1-3 int)) + (b! (zero? (-> obj ctrl)) cfg-2) + (.mtc0 Perf r0-0) + (.sync.l) + (.sync.p) + (.mfpc v1-1 pcr0) + (+! (-> obj accum0) (the-as uint v1-1)) + (.mfpc v1-3 pcr1) + (+! (-> obj accum1) (the-as uint v1-3)) + (label cfg-2) + 0 + (none) + ) ;; definition for method 13 of type perf-stat ;; INFO: Return type mismatch int vs none. (defmethod - update-wait-stats-13 + update-wait-stats perf-stat ((obj perf-stat) (arg0 uint) (arg1 uint) (arg2 uint)) (when (nonzero? (-> obj ctrl)) @@ -140,3 +189,7 @@ (set! (-> perf-stat method-table 12) nothing) (set! (-> perf-stat method-table 13) nothing) ) + + + + diff --git a/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc b/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc index 733511c24a..0fb4456247 100644 --- a/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc +++ b/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc @@ -8,7 +8,7 @@ (the-as cspace (cond (result (empty) - (the-as cspace result) + result ) (else (format 0 "no cspace (~A)~%" arg1) diff --git a/test/decompiler/reference/engine/entity/actor-link-h_REF.gc b/test/decompiler/reference/engine/entity/actor-link-h_REF.gc index 70c11e851e..72eed8ea89 100644 --- a/test/decompiler/reference/engine/entity/actor-link-h_REF.gc +++ b/test/decompiler/reference/engine/entity/actor-link-h_REF.gc @@ -233,10 +233,64 @@ ) ;; definition for method 20 of type actor-link-info -;; ERROR: function was not converted to expressions. Cannot decompile. +(defmethod + send-to-all-after + actor-link-info + ((obj actor-link-info) (message object)) + (with-pp + (let ((iter (-> obj next)) + (result (the-as object #f)) + ) + (while iter + (let ((proc (-> iter extra process))) + (when proc + (let ((msg-block (new 'stack-no-clear 'event-message-block))) + (set! (-> msg-block from) pp) + (set! (-> msg-block num-params) 0) + (set! (-> msg-block message) (the-as basic message)) + (let ((v1-3 (send-event-function proc msg-block))) + (b! v1-3 cfg-4 :likely-delay (set! result v1-3)) + ) + ) + (label cfg-4) + ) + ) + (set! iter (entity-actor-lookup iter 'next-actor 0)) + ) + result + ) + ) + ) ;; definition for method 21 of type actor-link-info -;; ERROR: function was not converted to expressions. Cannot decompile. +(defmethod + send-to-all-before + actor-link-info + ((obj actor-link-info) (arg0 object)) + (with-pp + (let ((s4-0 (-> obj prev)) + (s5-0 (the-as object #f)) + ) + (while s4-0 + (let ((a0-1 (-> s4-0 extra process))) + (when a0-1 + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) pp) + (set! (-> a1-1 num-params) 0) + (set! (-> a1-1 message) (the-as basic arg0)) + (let ((v1-3 (send-event-function a0-1 a1-1))) + (b! v1-3 cfg-4 :likely-delay (set! s5-0 v1-3)) + ) + ) + (label cfg-4) + ) + ) + (set! s4-0 (entity-actor-lookup s4-0 'prev-actor 0)) + ) + s5-0 + ) + ) + ) ;; definition for method 23 of type actor-link-info ;; INFO: Return type mismatch int vs none. @@ -436,3 +490,7 @@ incomplete-count ) ) + + + + diff --git a/test/decompiler/reference/engine/sound/gsound-h_REF.gc b/test/decompiler/reference/engine/sound/gsound-h_REF.gc index b64471e9a5..486da1f435 100644 --- a/test/decompiler/reference/engine/sound/gsound-h_REF.gc +++ b/test/decompiler/reference/engine/sound/gsound-h_REF.gc @@ -782,10 +782,10 @@ :flag-assert #xe0000006c (:methods (new (symbol type basic vector) _type_ 0) - (dummy-9 (_type_) int 9) - (dummy-10 (_type_ sound-name) int 10) - (dummy-11 (_type_ vector) int 11) - (dummy-12 (_type_ int) int 12) + (update! (_type_) int 9) + (change-sound! (_type_ sound-name) int 10) + (update-trans! (_type_ vector) int 11) + (update-vol! (_type_ int) int 12) (stop! (_type_) int 13) ) ) diff --git a/test/decompiler/reference/engine/sound/gsound_REF.gc b/test/decompiler/reference/engine/sound/gsound_REF.gc new file mode 100644 index 0000000000..b740b9e99a --- /dev/null +++ b/test/decompiler/reference/engine/sound/gsound_REF.gc @@ -0,0 +1,1741 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *sound-player-rpc*, type rpc-buffer-pair +(define + *sound-player-rpc* + (new 'global 'rpc-buffer-pair (the-as uint 80) (the-as uint 128) 0) + ) + +;; definition for symbol *sound-loader-rpc*, type rpc-buffer-pair +(define + *sound-loader-rpc* + (new 'global 'rpc-buffer-pair (the-as uint 80) (the-as uint 1) 1) + ) + +;; definition for function sound-name= +(defun sound-name= ((arg0 sound-name) (arg1 sound-name)) + (and (= (the-as uint arg0) (the-as uint arg1)) (= (-> arg0 hi) (-> arg1 hi))) + ) + +;; definition of type sound-iop-info +(deftype sound-iop-info (basic) + ((frame uint32 :offset 16) + (strpos int32 :offset-assert 20) + (str-id uint32 :offset-assert 24) + (str-id-sign int32 :offset 24) + (freemem uint32 :offset-assert 28) + (chinfo uint8 48 :offset-assert 32) + (freemem2 uint32 :offset-assert 80) + (nocd uint32 :offset-assert 84) + (dirtycd uint32 :offset-assert 88) + (diskspeed uint32 2 :offset-assert 92) + (lastspeed uint32 :offset-assert 100) + (dupseg int32 :offset-assert 104) + (times uint32 41 :offset-assert 108) + (times-seq uint32 :offset-assert 272) + ) + :method-count-assert 9 + :size-assert #x114 + :flag-assert #x900000114 + ) + +;; definition for method 3 of type sound-iop-info +(defmethod inspect sound-iop-info ((obj sound-iop-info)) + (format #t "[~8x] ~A~%" obj (-> obj type)) + (format #t "~Tframe: ~D~%" (-> obj frame)) + (format #t "~Tstrpos: ~D~%" (-> obj strpos)) + (format #t "~Tstr-id: ~D~%" (-> obj str-id)) + (format #t "~Tstr-id-sign: ~D~%" (-> obj str-id-sign)) + (format #t "~Tfreemem: ~D~%" (-> obj freemem)) + (format #t "~Tchinfo[48] @ #x~X~%" (-> obj chinfo)) + (format #t "~Tfreemem2: ~D~%" (-> obj freemem2)) + (format #t "~Tnocd: ~D~%" (-> obj nocd)) + (format #t "~Tdirtycd: ~D~%" (-> obj dirtycd)) + (format #t "~Tdiskspeed[2] @ #x~X~%" (-> obj diskspeed)) + (format #t "~Tlastspeed: ~D~%" (-> obj lastspeed)) + (format #t "~Tdupseg: ~D~%" (-> obj dupseg)) + (format #t "~Ttimes[41] @ #x~X~%" (-> obj times)) + (format #t "~Ttimes-seq: ~D~%" (-> obj times-seq)) + obj + ) + +;; definition for symbol *sound-iop-info*, type sound-iop-info +(define *sound-iop-info* (new 'global 'sound-iop-info)) + +;; definition for function str-is-playing? +(defun str-is-playing? () + (!= (-> *sound-iop-info* strpos) -1) + ) + +;; definition for function current-str-id +(defun current-str-id () + (-> *sound-iop-info* str-id-sign) + ) + +;; definition for function current-str-pos +(defun current-str-pos ((arg0 int)) + (let ((v0-0 -1)) + (if (= arg0 (-> *sound-iop-info* str-id)) + (set! v0-0 (-> *sound-iop-info* strpos)) + ) + v0-0 + ) + ) + +;; definition for function is-cd-in? +(defun is-cd-in? () + (zero? (-> *sound-iop-info* nocd)) + ) + +;; definition for function new-sound-id +(defun new-sound-id () + (set! *current-sound-id* (+ *current-sound-id* (the-as uint 1))) + (if (< (the-as int *current-sound-id*) #x10000) + (set! *current-sound-id* (the-as sound-id #x10000)) + ) + *current-sound-id* + ) + +;; definition for function check-irx-version +(defun check-irx-version () + (let + ((cmd (the-as sound-rpc-get-irx-version (add-element *sound-loader-rpc*)))) + (set! (-> cmd command) (sound-command get-irx-version)) + (set! (-> cmd ee-addr) (&-> *sound-iop-info* frame)) + (call + *sound-loader-rpc* + (the-as uint 0) + (the-as pointer cmd) + (the-as uint 80) + ) + (sync *sound-loader-rpc* #f) + (format 0 "IRX version ~D.~D~%" (-> cmd major) (-> cmd minor)) + (when (or (!= (-> cmd major) 2) (nonzero? (-> cmd minor))) + (format 0 "ERROR: IRX is the wrong version - need ~D.~D~%" 2 0) + (format 0 "~%~%Please do (:mch) then mkee on linux-dog~%~%~%") + (crash!) + 0 + ) + ) + 0 + ) + +;; failed to figure out what this is: +(check-irx-version) + +;; definition for function sound-bank-load +;; Used lq/sq +(defun sound-bank-load ((arg0 sound-name)) + (let ((gp-0 (new-sound-id))) + (let ((cmd (the-as sound-rpc-load-bank (add-element *sound-loader-rpc*)))) + (set! (-> cmd command) (sound-command load-bank)) + (set! (-> cmd bank-name) arg0) + ) + (call *sound-loader-rpc* (the-as uint 0) (the-as pointer 0) (the-as uint 0)) + gp-0 + ) + ) + +;; definition for function sound-bank-unload +;; Used lq/sq +(defun sound-bank-unload ((arg0 sound-name)) + (let ((cmd (the-as sound-rpc-unload-bank (add-element *sound-loader-rpc*)))) + (set! (-> cmd command) (sound-command unload-bank)) + (set! (-> cmd bank-name) arg0) + ) + (call *sound-loader-rpc* (the-as uint 0) (the-as pointer 0) (the-as uint 0)) + 0 + ) + +;; definition for function sound-music-load +;; Used lq/sq +(defun sound-music-load ((arg0 sound-name)) + (let ((cmd (the-as sound-rpc-load-music (add-element *sound-loader-rpc*)))) + (set! (-> cmd command) (sound-command load-music)) + (set! (-> cmd bank-name) arg0) + ) + (call *sound-loader-rpc* (the-as uint 0) (the-as pointer 0) (the-as uint 0)) + 0 + ) + +;; definition for function sound-music-unload +(defun sound-music-unload () + (let ((cmd (the-as sound-rpc-unload-music (add-element *sound-loader-rpc*)))) + (set! (-> cmd command) (sound-command unload-music)) + ) + (call *sound-loader-rpc* (the-as uint 0) (the-as pointer 0) (the-as uint 0)) + 0 + ) + +;; failed to figure out what this is: +(sound-bank-load (static-sound-name "common")) + +;; failed to figure out what this is: +(sound-bank-load (static-sound-name "empty1")) + +;; failed to figure out what this is: +(sound-bank-load (static-sound-name "empty2")) + +;; definition for symbol *sound-bank-1*, type symbol +(define *sound-bank-1* 'empty1) + +;; definition for symbol *sound-bank-2*, type symbol +(define *sound-bank-2* 'empty2) + +;; definition for function sound-reload-info +(defun sound-reload-info () + (let ((cmd (the-as sound-rpc-reload-info (add-element *sound-loader-rpc*)))) + (set! (-> cmd command) (sound-command reload-info)) + ) + (call *sound-loader-rpc* (the-as uint 0) (the-as pointer 0) (the-as uint 0)) + 0 + ) + +;; definition for function set-language +(defun set-language ((arg0 int)) + (kset-language arg0) + (let ((cmd (the-as sound-rpc-set-language (add-element *sound-loader-rpc*)))) + (set! (-> cmd command) (sound-command set-language)) + (set! (-> cmd lang) (the-as uint arg0)) + ) + (call *sound-loader-rpc* (the-as uint 0) (the-as pointer 0) (the-as uint 0)) + 0 + ) + +;; definition for function list-sounds +(defun list-sounds () + (let ((cmd (the-as sound-rpc-list-sounds (add-element *sound-loader-rpc*)))) + (set! (-> cmd command) (sound-command list-sounds)) + ) + (call *sound-loader-rpc* (the-as uint 0) (the-as pointer 0) (the-as uint 0)) + 0 + ) + +;; definition for function sound-command->string +(defun sound-command->string ((arg0 sound-command)) + (case arg0 + (((sound-command unload-music)) + "unload-music" + ) + (((sound-command list-sounds)) + "list-sounds" + ) + (((sound-command shutdown)) + "shutdown" + ) + (((sound-command set-ear-trans)) + "set-ear-trans" + ) + (((sound-command set-reverb)) + "set-reverb" + ) + (((sound-command set-flava)) + "set-flava" + ) + (((sound-command set-language)) + "set-language" + ) + (((sound-command reload-info)) + "reload-info" + ) + (((sound-command set-sound-falloff)) + "set-sound-falloff" + ) + (((sound-command set-falloff-curve)) + "set-falloff-curve" + ) + (((sound-command get-irx-version)) + "get-irx-version" + ) + (((sound-command continue-group)) + "continue-group" + ) + (((sound-command stop-group)) + "stop-group" + ) + (((sound-command pause-group)) + "pause-group" + ) + (((sound-command set-master-volume)) + "set-master-volume" + ) + (((sound-command set-param)) + "set-param" + ) + (((sound-command continue-sound)) + "continue-sound" + ) + (((sound-command stop-sound)) + "stop-sound" + ) + (((sound-command pause-sound)) + "pause-sound" + ) + (((sound-command play)) + "play" + ) + (((sound-command unload-bank)) + "unload-bank" + ) + (((sound-command load-music)) + "load-music" + ) + (((sound-command load-bank)) + "load-bank" + ) + (else + "*unknown*" + ) + ) + ) + +;; definition for function sound-buffer-dump +;; Used lq/sq +(defun sound-buffer-dump () + (let ((gp-0 (-> *sound-player-rpc* current elt-used)) + (s5-0 (-> *sound-player-rpc* current elt-size)) + ) + (dotimes (s4-0 (the-as int gp-0)) + (let* + ((cmd + (the-as + sound-rpc-play + (&+ (-> *sound-player-rpc* current base) (* s5-0 (the-as uint s4-0))) + ) + ) + (a3-0 (sound-command->string (-> cmd command))) + ) + (case (-> cmd command) + (((sound-command play)) + (format #t "~D ~A ~G~%" s4-0 a3-0 (-> cmd name)) + ) + (else + (format #t "~D ~A~%" s4-0 a3-0) + ) + ) + ) + ) + ) + 0 + ) + +;; definition for symbol *sound-player-enable*, type symbol +(define *sound-player-enable* #t) + +;; definition for function swap-sound-buffers +(defun swap-sound-buffers ((arg0 vector) (arg1 vector) (arg2 float)) + (cond + ((check-busy *sound-player-rpc*) + (set! *sound-player-enable* #f) + ) + (else + (let ((a0-2 (-> *sound-player-rpc* current))) + (if (< (-> a0-2 elt-used) (-> a0-2 elt-count)) + (sound-set-ear-trans arg0 arg1 arg2) + ) + ) + (call *sound-player-rpc* (the-as uint 0) (the-as pointer 0) (the-as uint 0)) + (set! *sound-player-enable* #t) + ) + ) + (cond + ((nonzero? (-> *sound-iop-info* nocd)) + (if + (or + (not *progress-process*) + (!= (-> *progress-process* 0 display-state) 32) + ) + (activate-progress *dproc* 32) + ) + ) + ((nonzero? (-> *sound-iop-info* dirtycd)) + (if + (or + (not *progress-process*) + (!= (-> *progress-process* 0 display-state) 33) + ) + (activate-progress *dproc* 33) + ) + ) + ) + 0 + ) + +;; definition for function get-sound-buffer-entry +(defun get-sound-buffer-entry () + (add-element *sound-player-rpc*) + ) + +;; definition for function free-last-sound-buffer-entry +(defun free-last-sound-buffer-entry () + (decrement-elt-used *sound-player-rpc*) + 0 + ) + +;; definition for function sound-basic-cb +;; INFO: Return type mismatch int vs none. +(defun sound-basic-cb ((arg0 int) (arg1 (pointer int32))) + (set! (-> arg1 0) arg0) + 0 + (none) + ) + +;; definition for function sound-trans-convert +(defun sound-trans-convert ((arg0 vector3w) (arg1 vector)) + (let ((v1-0 (if arg1 + arg1 + (ear-trans) + ) + ) + ) + (set! (-> arg0 x) (the int (* 0.0625 (-> v1-0 x)))) + (set! (-> arg0 y) (the int (* 0.0625 (-> v1-0 y)))) + (set! (-> arg0 z) (the int (* 0.0625 (-> v1-0 z)))) + ) + 0 + ) + +;; definition for function sound-angle-convert +(defun sound-angle-convert ((arg0 float)) + (let* ((f0-3 (the float (sar (shl (the int arg0) 48) 48))) + (v0-0 (the int (* 0.005493164 f0-3))) + ) + (if (< v0-0 0) + (+! v0-0 360) + ) + (if (< 359 v0-0) + (+! v0-0 -360) + ) + v0-0 + ) + ) + +;; definition for function string->sound-name +;; INFO: Return type mismatch uint128 vs sound-name. +;; Used lq/sq +(defun string->sound-name ((str string)) + (let ((snd-name (new 'stack-no-clear 'qword))) + (set! (-> snd-name quad) (the-as uint128 0)) + (let ((out-ptr (the-as (pointer uint8) snd-name)) + (in-ptr (-> str data)) + ) + (while + (and + (nonzero? (-> in-ptr 0)) + (< (&- in-ptr (the-as uint (-> str data))) 15) + ) + (set! (-> out-ptr 0) (-> in-ptr 0)) + (set! out-ptr (&-> out-ptr 1)) + (set! in-ptr (&-> in-ptr 1)) + ) + ) + (the-as sound-name (-> snd-name quad)) + ) + ) + +;; definition for function sound-set-volume +(defun sound-set-volume ((arg0 uint) (arg1 float)) + (let ((cmd (the-as sound-rpc-set-master-volume (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-master-volume)) + (set! (-> cmd group) arg0) + (set! (-> cmd volume) (the int (* 10.24 arg1))) + ) + 0 + ) + +;; definition for function sound-set-reverb +(defun sound-set-reverb ((arg0 int) (arg1 float) (arg2 float) (arg3 uint)) + (let ((cmd (the-as sound-rpc-set-reverb (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-reverb)) + (set! (-> cmd core) arg3) + (set! (-> cmd reverb) arg0) + (set! (-> cmd left) (the-as uint (the int (* 32767.0 arg1)))) + (set! (-> cmd right) (the-as uint (the int (* 32767.0 arg2)))) + ) + 0 + ) + +;; definition for function sound-set-ear-trans +(defun sound-set-ear-trans ((arg0 vector) (arg1 vector) (arg2 float)) + (let ((cmd (the-as sound-rpc-set-ear-trans (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-ear-trans)) + (sound-trans-convert (-> cmd ear-trans) arg0) + (sound-trans-convert (-> cmd cam-trans) arg1) + (set! (-> cmd cam-angle) (sound-angle-convert arg2)) + ) + 0 + ) + +;; definition for function sound-play-by-name +;; Used lq/sq +(defun + sound-play-by-name + ((name sound-name) + (id sound-id) + (vol int) + (pitch int) + (bend int) + (group uint) + (trans vector) + ) + (local-vars (sv-16 uint)) + (with-pp + (set! sv-16 group) + (let ((sound-trans trans)) + (when *sound-player-enable* + (let ((cmd (the-as sound-rpc-play (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command play)) + (set! (-> cmd id) id) + (set! (-> cmd name) name) + (set! (-> cmd parms mask) (the-as uint 0)) + (set! (-> cmd parms group) sv-16) + (set! (-> cmd parms volume) vol) + (set! (-> cmd parms pitch-mod) pitch) + (set! (-> cmd parms bend) bend) + (let ((proc (the-as process-drawable pp))) + (when (= sound-trans #t) + (if + (and + proc + (type-type? (-> proc type) process-drawable) + (nonzero? (-> proc root)) + ) + (set! sound-trans (-> proc root trans)) + (set! sound-trans (the-as vector #f)) + ) + ) + ) + (sound-trans-convert (-> cmd parms trans) sound-trans) + ) + ) + ) + id + ) + ) + +;; definition for function sound-play-by-spec +;; Used lq/sq +(defun sound-play-by-spec ((spec sound-spec) (id sound-id) (trans vector)) + (with-pp + (when *sound-player-enable* + (let ((cmd (the-as sound-rpc-play (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command play)) + (set! (-> cmd id) id) + (set! (-> cmd name) (-> spec sound-name)) + (set! (-> cmd parms mask) (-> spec mask)) + (set! (-> cmd parms group) (-> spec group)) + (set! (-> cmd parms volume) (-> spec volume)) + (set! (-> cmd parms pitch-mod) (-> spec pitch-mod)) + (set! (-> cmd parms bend) (-> spec bend)) + (set! (-> cmd parms fo-min) (-> spec fo-min)) + (set! (-> cmd parms fo-max) (-> spec fo-max)) + (set! (-> cmd parms fo-curve) (-> spec fo-curve)) + (set! (-> cmd parms priority) (-> spec priority)) + (let ((proc (the-as process-drawable pp))) + (when (= trans #t) + (if + (and + proc + (type-type? (-> proc type) process-drawable) + (nonzero? (-> proc root)) + ) + (set! trans (-> proc root trans)) + (set! trans (the-as vector #f)) + ) + ) + ) + (sound-trans-convert (-> cmd parms trans) trans) + ) + ) + id + ) + ) + +;; definition for function sound-pause +(defun sound-pause ((arg0 sound-id)) + (let ((cmd (the-as sound-rpc-pause-sound (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command pause-sound)) + (set! (-> cmd id) arg0) + ) + 0 + ) + +;; definition for function sound-stop +(defun sound-stop ((arg0 sound-id)) + (let ((cmd (the-as sound-rpc-stop-sound (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command stop-sound)) + (set! (-> cmd id) arg0) + ) + 0 + ) + +;; definition for function sound-continue +(defun sound-continue ((arg0 sound-id)) + (let ((cmd (the-as sound-rpc-continue-sound (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command continue-sound)) + (set! (-> cmd id) arg0) + ) + 0 + ) + +;; definition for function sound-group-pause +(defun sound-group-pause ((arg0 uint)) + (let ((cmd (the-as sound-rpc-pause-group (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command pause-group)) + (set! (-> cmd group) arg0) + ) + 0 + ) + +;; definition for function sound-group-stop +(defun sound-group-stop ((arg0 uint)) + (let ((cmd (the-as sound-rpc-stop-group (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command stop-group)) + (set! (-> cmd group) arg0) + ) + 0 + ) + +;; definition for function sound-group-continue +(defun sound-group-continue ((arg0 uint)) + (let ((cmd (the-as sound-rpc-continue-group (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command continue-group)) + (set! (-> cmd group) arg0) + ) + 0 + ) + +;; definition for function sound-set-falloff-curve +(defun sound-set-falloff-curve ((arg0 int) (arg1 float) (arg2 float)) + (let ((cmd (the-as sound-rpc-set-falloff-curve (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-falloff-curve)) + (set! (-> cmd curve) arg0) + (set! (-> cmd falloff) (the int (* 4096.0 arg1))) + (set! (-> cmd ease) (the int (* 4096.0 arg2))) + ) + 0 + ) + +;; definition for function sound-set-sound-falloff +;; Used lq/sq +(defun + sound-set-sound-falloff + ((arg0 sound-name) (arg1 int) (arg2 int) (arg3 int)) + (let ((cmd (the-as sound-rpc-set-sound-falloff (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-sound-falloff)) + (set! (-> cmd name) arg0) + (set! (-> cmd min) arg1) + (set! (-> cmd max) arg2) + (set! (-> cmd curve) arg3) + ) + 0 + ) + +;; definition for function sound-set-flava +(defun sound-set-flava ((arg0 uint)) + (let ((cmd (the-as sound-rpc-set-flava (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-flava)) + (set! (-> cmd flava) arg0) + ) + 0 + ) + +;; definition for function sound-volume-off +(defun sound-volume-off () + (with-pp + (set-setting! *setting-control* pp 'music-volume 'abs 0.0 0) + (set-setting! *setting-control* pp 'sfx-volume 'abs 0.0 0) + (set-setting! *setting-control* pp 'ambient-volume 'abs 0.0 0) + 0 + ) + ) + +;; definition for symbol *ambient-spec*, type sound-spec +(define *ambient-spec* (new 'static 'sound-spec)) + +;; definition for method 0 of type ambient-sound +;; INFO: Return type mismatch object vs ambient-sound. +;; Used lq/sq +(defmethod + new + ambient-sound + ((allocation symbol) (type-to-make type) (arg0 basic) (arg1 vector)) + (local-vars + (sv-16 sound-spec) + (sv-32 sound-name) + (sv-48 (pointer float)) + (sv-52 sound-play-parms) + (sv-56 int) + (sv-64 res-tag) + ) + (set! sv-16 (the-as sound-spec #f)) + (set! sv-32 (the-as sound-name 0)) + (set! sv-48 (the-as (pointer float) #f)) + (set! sv-52 (the-as sound-play-parms #f)) + (set! sv-56 0) + (case (-> arg0 type) + ((entity-actor entity-ambient) + (let + ((bc + ((method-of-type res-lump get-property-struct) + (the-as res-lump arg0) + 'effect-name + 'exact + 0.0 + #f + (the-as (pointer res-tag) #f) + *res-static-buf* + ) + ) + ) + (when bc + (set! + sv-32 + (string->sound-name + (the-as + string + (-> (the-as (pointer uint32) (+ #xff38 (the-as int bc)))) + ) + ) + ) + (set! + sv-48 + (the-as + (pointer float) + ((method-of-type res-lump get-property-data) + (the-as res-lump arg0) + 'cycle-speed + 'interp + -1000000000.0 + (the-as pointer #f) + (the-as (pointer res-tag) #f) + *res-static-buf* + ) + ) + ) + (set! sv-16 *ambient-spec*) + (set! sv-64 (new 'static 'res-tag)) + (let + ((v1-7 + ((method-of-type res-lump get-property-data) + (the-as res-lump arg0) + 'effect-param + 'exact + 0.0 + (the-as pointer #f) + (& sv-64) + *res-static-buf* + ) + ) + ) + (when v1-7 + (set! sv-52 (the-as sound-play-parms v1-7)) + (set! sv-56 (the-as int (-> sv-64 elt-count))) + ) + ) + ) + ) + ) + ((sound-spec) + (set! sv-16 (the-as sound-spec arg0)) + ) + ((symbol) + (set! + sv-32 + (string->sound-name + (the-as + string + (-> (the-as (pointer uint32) (+ #xff38 (the-as int arg0)))) + ) + ) + ) + ) + ((string) + (set! sv-32 (string->sound-name (the-as string arg0))) + ) + (else + (format 0 "ERROR: ambient sound was told to play an unknown ~A.~%" arg0) + ) + ) + (the-as ambient-sound (cond + ((or sv-16 (nonzero? sv-32)) + (let + ((obj + (object-new + allocation + type-to-make + (the-as int (-> type-to-make size)) + ) + ) + ) + (set! (-> obj spec) sv-16) + (set! (-> obj name) sv-32) + (set! (-> obj playing-id) (new-sound-id)) + (set! (-> obj params) sv-52) + (set! (-> obj param-count) sv-56) + (set! (-> obj entity) #f) + (set! (-> obj sound-count) 1) + (set! (-> obj volume) 1024) + (set! (-> obj pitch) 0) + (when (and sv-16 (!= sv-16 *ambient-spec*)) + (if + (nonzero? + (logand (-> (the-as sound-spec sv-16) mask) 1) + ) + (set! + (-> obj volume) + (-> (the-as sound-spec sv-16) volume) + ) + ) + (if + (nonzero? + (logand (-> (the-as sound-spec sv-16) mask) 2) + ) + (set! + (-> obj pitch) + (-> (the-as sound-spec sv-16) pitch-mod) + ) + ) + ) + (cond + (sv-48 + (set! + (-> obj time-base) + (the-as uint (the int (* 300.0 (-> sv-48 0)))) + ) + (set! + (-> obj time-random) + (the-as uint (the int (* 300.0 (-> sv-48 1)))) + ) + ) + (else + (set! (-> obj time-base) (the-as uint -1)) + ) + ) + (set! (-> obj trans quad) (-> arg1 quad)) + obj + ) + ) + (else + (the-as ambient-sound 0) + ) + ) + ) + ) + +;; definition for method 9 of type ambient-sound +;; Used lq/sq +(defmethod update! ambient-sound ((obj ambient-sound)) + (with-pp + (if (not *ambient-sound-class*) + (return (the-as int #f)) + ) + (cond + ((-> obj spec) + (when + (or + (< (the-as int (-> obj time-base)) 0) + (>= + (the-as int (-> *display* base-frame-counter)) + (the-as int (-> obj play-time)) + ) + ) + (when (>= (the-as int (-> obj time-base)) 0) + (set! + (-> obj play-time) + (+ + (+ (-> *display* base-frame-counter) (-> obj time-base)) + (the-as uint (rand-vu-int-count (the-as int (-> obj time-random)))) + ) + ) + (set! (-> obj playing-id) (new-sound-id)) + ) + (let ((spec (-> obj spec))) + (when (= spec *ambient-spec*) + (set! (-> spec volume) (-> obj volume)) + (set! (-> spec pitch-mod) (-> obj pitch)) + (set! (-> spec bend) 0) + (set! (-> spec sound-name) (-> obj name)) + (set! (-> spec fo-max) (-> obj falloff-far)) + (set! (-> spec mask) (the-as uint 0)) + (if (-> obj params) + (effect-param->sound-spec spec (-> obj params) (-> obj param-count)) + ) + ) + (if + (and + (nonzero? (-> spec fo-max)) + (< + (* 4096.0 (the float (-> spec fo-max))) + (vector-vector-distance (ear-trans) (-> obj trans)) + ) + ) + (return 0) + ) + (when (and *debug-effect-control* (>= (the-as int (-> obj time-base)) 0)) + (format + #t + "(~5D) effect sound ~A ~G " + (-> *display* base-frame-counter) + (-> pp name) + (-> spec sound-name-char) + ) + (format + #t + "volume: ~f pitch-mod: ~f~%" + (* 0.09765625 (the float (-> spec volume))) + (* 0.000656168 (the float (-> spec pitch-mod))) + ) + ) + (let ((spec-volume (-> spec volume))) + (set! (-> spec volume) (-> obj volume)) + (set! + (-> obj playing-id) + (sound-play-by-spec spec (-> obj playing-id) (-> obj trans)) + ) + (set! (-> spec volume) spec-volume) + ) + ) + ) + ) + ((< (the-as int (-> obj time-base)) 0) + (set! + (-> obj playing-id) + (sound-play-by-name + (-> obj name) + (-> obj playing-id) + (-> obj volume) + (-> obj pitch) + 0 + (the-as uint 1) + (-> obj trans) + ) + ) + ) + (else + (when + (>= + (the-as int (-> *display* base-frame-counter)) + (the-as int (-> obj play-time)) + ) + (set! + (-> obj playing-id) + (sound-play-by-name + (-> obj name) + (new-sound-id) + (-> obj volume) + (-> obj pitch) + 0 + (the-as uint 1) + (-> obj trans) + ) + ) + (set! + (-> obj play-time) + (+ + (+ (-> *display* base-frame-counter) (-> obj time-base)) + (the-as uint (rand-vu-int-count (the-as int (-> obj time-random)))) + ) + ) + ) + ) + ) + 0 + ) + ) + +;; definition for method 13 of type ambient-sound +(defmethod stop! ambient-sound ((obj ambient-sound)) + (sound-stop (-> obj playing-id)) + 0 + ) + +;; definition for method 11 of type ambient-sound +;; Used lq/sq +(defmethod update-trans! ambient-sound ((obj ambient-sound) (arg0 vector)) + (with-pp + (set! (-> obj trans quad) (-> arg0 quad)) + (when (nonzero? (-> obj playing-id)) + (let ((cmd (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-param)) + (set! (-> cmd id) (-> obj playing-id)) + (let ((s4-1 pp)) + (when (= arg0 #t) + (if + (and + (the-as process-drawable s4-1) + (type-type? (-> (the-as process-drawable s4-1) type) process-drawable) + (nonzero? (-> (the-as process-drawable s4-1) root)) + ) + (set! arg0 (-> (the-as process-drawable s4-1) root trans)) + (set! arg0 (the-as vector #f)) + ) + ) + ) + (sound-trans-convert (-> cmd parms trans) arg0) + (set! (-> cmd parms mask) (the-as uint 32)) + (-> cmd id) + ) + ) + 0 + ) + ) + +;; definition for method 12 of type ambient-sound +(defmethod update-vol! ambient-sound ((obj ambient-sound) (arg0 int)) + (when (nonzero? (-> obj playing-id)) + (let ((cmd (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-param)) + (set! (-> cmd id) (-> obj playing-id)) + (set! (-> cmd parms volume) (the int (* 10.24 (the float arg0)))) + (set! (-> cmd parms mask) (the-as uint 1)) + (-> cmd id) + ) + ) + (set! (-> obj volume) (the int (* 10.24 (the float arg0)))) + 0 + ) + +;; definition for method 10 of type ambient-sound +;; Used lq/sq +(defmethod change-sound! ambient-sound ((obj ambient-sound) (arg0 sound-name)) + (when + (not + (and + (= (the-as uint (-> obj name)) (the-as uint arg0)) + (= (-> arg0 hi) (-> obj name hi)) + ) + ) + (stop! obj) + (set! (-> obj playing-id) (new-sound-id)) + (set! (-> obj name) arg0) + ) + 0 + ) + +;; definition for function show-iop-info +(defun show-iop-info ((arg0 dma-buffer)) + (dotimes (s5-0 24) + (draw-string-xy (if (zero? (-> *sound-iop-info* chinfo s5-0)) + "." + "X" + ) + arg0 + (+ (* s5-0 16) 16) + 48 + 0 + 1 + ) + ) + (dotimes (s5-1 24) + (draw-string-xy (if (zero? (-> *sound-iop-info* chinfo (+ s5-1 24))) + "." + "X" + ) + arg0 + (+ (* s5-1 16) 16) + 64 + 0 + 1 + ) + ) + 0 + ) + +;; definition for function show-iop-memory +(defun show-iop-memory ((arg0 dma-buffer)) + (let ((s5-0 draw-string-xy)) + (format + (clear *temp-string*) + "~8D [~4D]" + (-> *sound-iop-info* freemem) + (shr (-> *sound-iop-info* freemem) 10) + ) + (s5-0 *temp-string* arg0 32 96 0 1) + ) + (let ((s5-1 draw-string-xy)) + (format + (clear *temp-string*) + "~8D [~4D]" + (-> *sound-iop-info* freemem2) + (shr (-> *sound-iop-info* freemem2) 10) + ) + (s5-1 *temp-string* arg0 32 64 0 1) + ) + 0 + ) + +;; definition for function ear-trans +(defun ear-trans () + (cond + ((or (movie?) *external-cam-mode*) + (math-camera-pos) + ) + (*target* + (target-pos 0) + ) + (else + (camera-pos) + ) + ) + ) + +;; definition (debug) for function make-sqrt-table +(defun-debug make-sqrt-table () + (format #t "static int sqrt_table[256] =~%{~%") + (dotimes (gp-0 256) + (let* ((f0-2 (sqrtf (* 16777216.0 (the float gp-0)))) + (a2-0 (the int (+ 0.5 f0-2))) + ) + (format #t "~D,~%" a2-0) + ) + ) + (format #t "};~%") + 0 + ) + +;; definition of type flava-table-row +(deftype flava-table-row (structure) + ((music symbol :offset-assert 0) + (flava uint8 50 :offset-assert 4) + ) + :allow-misaligned :method-count-assert 9 + :size-assert #x36 + :flag-assert #x900000036 + ) + +;; definition for method 3 of type flava-table-row +(defmethod inspect flava-table-row ((obj flava-table-row)) + (format #t "[~8x] ~A~%" obj 'flava-table-row) + (format #t "~Tmusic: ~A~%" (-> obj music)) + (format #t "~Tflava[50] @ #x~X~%" (-> obj flava)) + obj + ) + +;; definition of type flava-table +(deftype flava-table (basic) + ((row flava-table-row 20 :inline :offset-assert 4) + (count int32 :offset-assert 1284) + ) + :method-count-assert 9 + :size-assert #x508 + :flag-assert #x900000508 + ) + +;; definition for method 3 of type flava-table +(defmethod inspect flava-table ((obj flava-table)) + (format #t "[~8x] ~A~%" obj (-> obj type)) + (format #t "~Trow[20] @ #x~X~%" (-> obj row)) + (format #t "~Tcount: ~D~%" (-> obj count)) + obj + ) + +;; definition for symbol *flava-table*, type flava-table +(define *flava-table* (new 'global 'flava-table)) + +;; failed to figure out what this is: +(set! (-> *flava-table* count) 0) + +;; definition for function flava-lookup +;; INFO: Return type mismatch int vs integer. +(defun flava-lookup ((arg0 symbol) (arg1 int)) + (dotimes (v1-0 (-> *flava-table* count)) + (if (= (-> *flava-table* row v1-0 music) arg0) + (return (the-as int (-> *flava-table* row 0 flava (+ arg1 (* v1-0 64))))) + ) + ) + 0 + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'village1) + +;; failed to figure out what this is: +(dotimes (v1-61 50) + (set! + (-> *flava-table* row 0 flava (+ v1-61 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 5) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 6) + (the-as uint 6) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 7) + (the-as uint 4) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 20) + (the-as uint 5) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 8) + (the-as uint 7) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 9) + (the-as uint 8) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 10) + (the-as uint 9) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 19) + (the-as uint 10) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 18) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'jungle) + +;; failed to figure out what this is: +(dotimes (v1-77 50) + (set! + (-> *flava-table* row 0 flava (+ v1-77 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 39) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 40) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 41) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'firecanyon) + +;; failed to figure out what this is: +(dotimes (v1-87 50) + (set! + (-> *flava-table* row 0 flava (+ v1-87 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 1) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'jungleb) + +;; failed to figure out what this is: +(dotimes (v1-95 50) + (set! + (-> *flava-table* row 0 flava (+ v1-95 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 21) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'beach) + +;; failed to figure out what this is: +(dotimes (v1-103 50) + (set! + (-> *flava-table* row 0 flava (+ v1-103 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 7) + (the-as uint 4) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 24) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 25) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 26) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'misty) + +;; failed to figure out what this is: +(dotimes (v1-114 50) + (set! + (-> *flava-table* row 0 flava (+ v1-114 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 1) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 22) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 23) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'village2) + +;; failed to figure out what this is: +(dotimes (v1-124 50) + (set! + (-> *flava-table* row 0 flava (+ v1-124 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 5) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 6) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 15) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 16) + (the-as uint 4) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 17) + (the-as uint 5) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 36) + (the-as uint 6) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'swamp) + +;; failed to figure out what this is: +(dotimes (v1-137 50) + (set! + (-> *flava-table* row 0 flava (+ v1-137 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 2) + (the-as uint 4) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 37) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 38) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'rolling) + +;; failed to figure out what this is: +(dotimes (v1-147 50) + (set! + (-> *flava-table* row 0 flava (+ v1-147 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 42) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'ogre) + +;; failed to figure out what this is: +(dotimes (v1-155 50) + (set! + (-> *flava-table* row 0 flava (+ v1-155 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 43) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 44) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'village3) + +;; failed to figure out what this is: +(dotimes (v1-164 50) + (set! + (-> *flava-table* row 0 flava (+ v1-164 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 3) + (the-as uint 4) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 4) + (the-as uint 5) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 5) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 6) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 14) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'maincave) + +;; failed to figure out what this is: +(dotimes (v1-176 50) + (set! + (-> *flava-table* row 0 flava (+ v1-176 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 28) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 29) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 30) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 31) + (the-as uint 4) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'snow) + +;; failed to figure out what this is: +(dotimes (v1-187 50) + (set! + (-> *flava-table* row 0 flava (+ v1-187 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 2) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 32) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 33) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 34) + (the-as uint 4) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 35) + (the-as uint 5) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'lavatube) + +;; failed to figure out what this is: +(dotimes (v1-199 50) + (set! + (-> *flava-table* row 0 flava (+ v1-199 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 45) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 46) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 49) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'citadel) + +;; failed to figure out what this is: +(dotimes (v1-209 50) + (set! + (-> *flava-table* row 0 flava (+ v1-209 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 5) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 6) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 11) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 12) + (the-as uint 4) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 13) + (the-as uint 5) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 27) + (the-as uint 6) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'finalboss) + +;; failed to figure out what this is: +(dotimes (v1-222 50) + (set! + (-> *flava-table* row 0 flava (+ v1-222 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 47) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 48) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'credits) + +;; failed to figure out what this is: +(dotimes (v1-231 50) + (set! + (-> *flava-table* row 0 flava (+ v1-231 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 49) + (the-as uint 2) + ) diff --git a/test/decompiler/test_FormExpressionBuild2.cpp b/test/decompiler/test_FormExpressionBuild2.cpp index 2d1713e641..5eb6edcf12 100644 --- a/test/decompiler/test_FormExpressionBuild2.cpp +++ b/test/decompiler/test_FormExpressionBuild2.cpp @@ -1310,7 +1310,8 @@ TEST_F(FormRegressionTest, SoundNameEqual) { " jr ra\n" " daddu sp, sp, r0"; std::string type = "(function sound-name sound-name symbol)"; - std::string expected = "(and (= arg0 arg1) (= (-> arg0 hi) (-> arg1 hi)))"; + std::string expected = + "(and (= (the-as uint arg0) (the-as uint arg1)) (= (-> arg0 hi) (-> arg1 hi)))"; test_with_expr(func, type, expected); } diff --git a/test/offline/offline_test_main.cpp b/test/offline/offline_test_main.cpp index 8ba393cff1..882d3d931d 100644 --- a/test/offline/offline_test_main.cpp +++ b/test/offline/offline_test_main.cpp @@ -62,8 +62,6 @@ const std::unordered_set g_functions_expected_to_reject = { // display "vblank-handler", // asm "vif1-handler", "vif1-handler-debug", - // stats-h - "(method 11 perf-stat)", "(method 12 perf-stat)", // ripple - asm "ripple-execute-init", "ripple-create-wave-table", "ripple-apply-wave-table", "ripple-matrix-scale", @@ -78,10 +76,6 @@ const std::unordered_set g_functions_expected_to_reject = { // collide-mesh-h "(method 11 collide-mesh-cache)", // asm - // actor-link-h - "(method 21 actor-link-info)", // BUG: sc cfg / cfg-ir bug - "(method 20 actor-link-info)", - "debug-menu-item-var-render" // asm }; @@ -143,6 +137,9 @@ const std::unordered_set g_functions_to_skip_compiling = { // asm "invalidate-cache-line", + // stats-h + "(method 11 perf-stat)", "(method 12 perf-stat)", + // sync-info "(method 15 sync-info)", // needs display stuff first "(method 15 sync-info-eased)", // needs display stuff first From 36ccf341a9c846426706befc5791bc30416606d1 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 20 Jul 2021 00:50:51 +0000 Subject: [PATCH 20/57] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/{about.750138b1.js => about.3506395f.js} | 4 ++-- docs/js/{about.750138b1.js.map => about.3506395f.js.map} | 2 +- docs/js/{app.81bb40f9.js => app.a68fab1a.js} | 4 ++-- docs/js/{app.81bb40f9.js.map => app.a68fab1a.js.map} | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename docs/js/{about.750138b1.js => about.3506395f.js} (99%) rename docs/js/{about.750138b1.js.map => about.3506395f.js.map} (99%) rename docs/js/{app.81bb40f9.js => app.a68fab1a.js} (97%) rename docs/js/{app.81bb40f9.js.map => app.a68fab1a.js.map} (98%) diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index 2c35918cdf..dc88a446cd 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 107180, + "value": 107272, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index 14666610ec..c3cc716780 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.750138b1.js b/docs/js/about.3506395f.js similarity index 99% rename from docs/js/about.750138b1.js rename to docs/js/about.3506395f.js index 44876fcc88..216cdd5445 100644 --- a/docs/js/about.750138b1.js +++ b/docs/js/about.3506395f.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107180,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.750138b1.js.map \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107272,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.3506395f.js.map \ No newline at end of file diff --git a/docs/js/about.750138b1.js.map b/docs/js/about.3506395f.js.map similarity index 99% rename from docs/js/about.750138b1.js.map rename to docs/js/about.3506395f.js.map index 792dace111..f427544fff 100644 --- a/docs/js/about.750138b1.js.map +++ b/docs/js/about.3506395f.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?1e25","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.750138b1.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?963a","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.3506395f.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.81bb40f9.js b/docs/js/app.a68fab1a.js similarity index 97% rename from docs/js/app.81bb40f9.js rename to docs/js/app.a68fab1a.js index 84e7a5f546..779982dd10 100644 --- a/docs/js/app.81bb40f9.js +++ b/docs/js/app.a68fab1a.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?08e0","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.a68fab1a.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"3506395f\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file From 09c09ce35f71435259d8794ff6f5bf6205ec31fa Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Thu, 22 Jul 2021 20:14:08 -0400 Subject: [PATCH 21/57] allow aliasing of registers in variables if we explictly ask for it (#711) --- docs/markdown/progress-notes/changelog.md | 3 +- goalc/compiler/Env.cpp | 5 +++ goalc/compiler/Env.h | 2 + goalc/compiler/compilation/Asm.cpp | 51 +++++++++++++++++------ 4 files changed, 48 insertions(+), 13 deletions(-) diff --git a/docs/markdown/progress-notes/changelog.md b/docs/markdown/progress-notes/changelog.md index 1b617dcf12..c76e93a3d9 100644 --- a/docs/markdown/progress-notes/changelog.md +++ b/docs/markdown/progress-notes/changelog.md @@ -180,4 +180,5 @@ - Fields with type `(inline-array thing)` can now be set in statics. - `meters`, `degrees`, and `seconds` types have been added. - Bitfields with `symbol` fields used in an immediate `(new 'static ...)` can now define the symbol in the `new` form. -- Bitfields with `float` fields used in an immediate `(new 'static ...)` in code can use a non-constant floating point value. \ No newline at end of file +- Bitfields with `float` fields used in an immediate `(new 'static ...)` in code can use a non-constant floating point value. +- Multiple variables assigned to the same register using `:reg` in `rlet` (or overlapping with `self` in a behavior) will now be merged to a single variable instead of causing a compiler error. Variables will have their own type, but they will all be an alias of the same exact register. \ No newline at end of file diff --git a/goalc/compiler/Env.cpp b/goalc/compiler/Env.cpp index 718e838b8a..17f5016de8 100644 --- a/goalc/compiler/Env.cpp +++ b/goalc/compiler/Env.cpp @@ -302,6 +302,11 @@ StackVarAddrVal* FunctionEnv::allocate_aligned_stack_variable(const TypeSpec& ts return result; } +RegVal* FunctionEnv::push_reg_val(std::unique_ptr in) { + m_iregs.push_back(std::move(in)); + return m_iregs.back().get(); +} + /////////////////// // LexicalEnv /////////////////// diff --git a/goalc/compiler/Env.h b/goalc/compiler/Env.h index afc34a490a..90ad79ab77 100644 --- a/goalc/compiler/Env.h +++ b/goalc/compiler/Env.h @@ -208,6 +208,8 @@ class FunctionEnv : public DeclareEnv { const std::vector>& reg_vals() const { return m_iregs; } + RegVal* push_reg_val(std::unique_ptr in); + int segment = -1; std::string method_of_type_name = "#f"; bool is_asm_func = false; diff --git a/goalc/compiler/compilation/Asm.cpp b/goalc/compiler/compilation/Asm.cpp index a34a3fc0c3..8d3da868f2 100644 --- a/goalc/compiler/compilation/Asm.cpp +++ b/goalc/compiler/compilation/Asm.cpp @@ -75,21 +75,48 @@ Val* Compiler::compile_rlet(const goos::Object& form, const goos::Object& rest, } // alloc a register: - auto new_place_reg = env->make_ireg(ts, register_class); - new_place_reg->mark_as_settable(); - + RegVal* new_place_reg = nullptr; if (def_args.has_named("reg")) { - IRegConstraint constraint; - constraint.ireg = new_place_reg->ireg(); - constraint.contrain_everywhere = true; - constraint.desired_register = parse_register(def_args.named.at("reg")); - if (def_args.has_named("reset-here") && - get_true_or_false(form, def_args.get_named("reset-here"))) { - reset_regs.push_back(new_place_reg); + auto desired_register = parse_register(def_args.named.at("reg")); + // we want to see if we already created a variable for this register, and reuse it. + for (auto& constr : fenv->constraints()) { + if (constr.desired_register == desired_register && constr.contrain_everywhere) { + auto reg_val_ptr = std::make_unique(constr.ireg, ts); + new_place_reg = fenv->push_reg_val(std::move(reg_val_ptr)); + new_place_reg->mark_as_settable(); + break; + } } - new_place_reg->set_rlet_constraint(constraint.desired_register); - constraints.push_back(constraint); + if (!new_place_reg) { + for (auto& constr : constraints) { + if (constr.desired_register == desired_register && constr.contrain_everywhere) { + auto reg_val_ptr = std::make_unique(constr.ireg, ts); + new_place_reg = fenv->push_reg_val(std::move(reg_val_ptr)); + new_place_reg->mark_as_settable(); + break; + } + } + } + } + + if (!new_place_reg) { + new_place_reg = env->make_ireg(ts, register_class); + new_place_reg->mark_as_settable(); + + if (def_args.has_named("reg")) { + IRegConstraint constraint; + constraint.ireg = new_place_reg->ireg(); + constraint.contrain_everywhere = true; + constraint.desired_register = parse_register(def_args.named.at("reg")); + if (def_args.has_named("reset-here") && + get_true_or_false(form, def_args.get_named("reset-here"))) { + reset_regs.push_back(new_place_reg); + } + + new_place_reg->set_rlet_constraint(constraint.desired_register); + constraints.push_back(constraint); + } } lenv->vars[new_place_name.as_symbol()->name] = new_place_reg; From 1e11a588f54a88f551c9d08310d203fc7b5e0841 Mon Sep 17 00:00:00 2001 From: ManDude <7569514+ManDude@users.noreply.github.com> Date: Fri, 23 Jul 2021 23:30:49 +0100 Subject: [PATCH 22/57] [decomp] `loader` prelim work + some cleanup (#697) * [decomp] `loader` prelim work + some cleanup * more things * more * even more * yet even more * minor fixes * decompiler fix + use behaviors for two funcs * last functions * Create loader_REF.gc * more work * change vag tool config format + unrelated farmer and yakow stuff * update some things * fix some decomp * cleanup things i came across + make dgo compileable * fix consistency test * update refs * offline test: skip buggy `external-art-buffer` method * fix test --- .vs/launch.vs.json | 7 + common/util/DgoReader.cpp | 2 +- decompiler/analysis/stack_spill.cpp | 3 +- decompiler/analysis/type_analysis.cpp | 3 +- decompiler/config/all-types.gc | 805 +++++---- .../config/jak1_ntsc_black_label/hacks.jsonc | 10 +- .../config/jak1_ntsc_black_label/inputs.jsonc | 11 +- .../jak1_ntsc_black_label/label_types.jsonc | 35 +- .../stack_structures.jsonc | 18 + .../jak1_ntsc_black_label/type_casts.jsonc | 87 + .../jak1_ntsc_black_label/var_names.jsonc | 30 +- decompiler/data/streamed_audio.cpp | 7 +- goal_src/engine/collide/collide-shape-h.gc | 2 +- goal_src/engine/data/art-h.gc | 4 +- goal_src/engine/debug/memory-usage-h.gc | 2 + goal_src/engine/debug/memory-usage.gc | 62 + goal_src/engine/draw/process-drawable-h.gc | 14 +- goal_src/engine/entity/actor-link-h.gc | 174 +- goal_src/engine/entity/entity-h.gc | 148 +- goal_src/engine/game/game-h.gc | 20 +- goal_src/engine/game/game-info-h.gc | 40 +- goal_src/engine/game/game-info.gc | 482 ++---- goal_src/engine/game/generic-obs-h.gc | 4 +- goal_src/engine/game/settings.gc | 182 +- goal_src/engine/game/task/task-control-h.gc | 74 +- goal_src/engine/game/task/task-control.gc | 332 ++-- goal_src/engine/gfx/depth-cue-h.gc | 3 +- goal_src/engine/gfx/sky/sky-h.gc | 28 +- goal_src/engine/gfx/sky/sky-utils.gc | 38 +- goal_src/engine/level/level.gc | 136 +- goal_src/engine/load/load-dgo.gc | 7 +- goal_src/engine/load/loader-h.gc | 95 +- goal_src/engine/load/loader.gc | 1052 ++++++++++++ goal_src/engine/math/math.gc | 9 + goal_src/engine/math/vector.gc | 12 +- goal_src/engine/nav/navigate-h.gc | 7 + goal_src/engine/sound/gsound-h.gc | 2 +- goal_src/engine/sound/gsound.gc | 34 +- goal_src/engine/target/logic-target.gc | 2 + goal_src/engine/target/target-h.gc | 2 +- .../engine/ui/progress/progress-static.gc | 11 +- goal_src/engine/util/types-h.gc | 26 +- goal_src/goal-lib.gc | 27 +- goal_src/kernel-defs.gc | 2 +- goal_src/kernel/gkernel-h.gc | 38 +- goal_src/kernel/gstate.gc | 10 +- .../engine/collide/collide-shape-h_REF.gc | 22 +- .../reference/engine/data/art-h_REF.gc | 4 +- .../engine/draw/process-drawable-h_REF.gc | 16 +- .../engine/entity/actor-link-h_REF.gc | 36 +- .../reference/engine/entity/entity-h_REF.gc | 8 +- .../reference/engine/game/game-h_REF.gc | 10 +- .../reference/engine/game/game-info-h_REF.gc | 26 +- .../engine/game/generic-obs-h_REF.gc | 30 +- .../engine/game/task/task-control-h_REF.gc | 72 +- .../reference/engine/gfx/sky/sky-h_REF.gc | 12 +- .../reference/engine/gfx/sky/sky-utils_REF.gc | 12 +- .../reference/engine/load/load-dgo_REF.gc | 4 +- .../reference/engine/load/loader-h_REF.gc | 74 +- .../reference/engine/load/loader_REF.gc | 1457 +++++++++++++++++ .../reference/engine/sound/gsound_REF.gc | 33 +- .../reference/engine/target/target-h_REF.gc | 2 +- .../reference/kernel/gkernel-h_REF.gc | 18 +- .../decompiler/reference/kernel/gstate_REF.gc | 2 +- .../with_game/test-fancy-static-fields.gc | 4 +- test/offline/offline_test_main.cpp | 5 +- 66 files changed, 4060 insertions(+), 1886 deletions(-) create mode 100644 test/decompiler/reference/engine/load/loader_REF.gc diff --git a/.vs/launch.vs.json b/.vs/launch.vs.json index 0650cbff3b..f7af0801bd 100644 --- a/.vs/launch.vs.json +++ b/.vs/launch.vs.json @@ -82,6 +82,13 @@ "projectTarget" : "memory_dump_tool.exe (bin\\memory_dump_tool.exe)", "name" : "Run - EE Memory Analyze", "args" : [ "${workspaceRoot}/eeMemory.bin", "${workspaceRoot}"] + }, + { + "type" : "default", + "project" : "CMakeLists.txt", + "projectTarget" : "dgo_unpacker.exe (bin\\dgo_unpacker.exe)", + "name" : "Run - DGO Unpacker (test)", + "args" : [ "C:\\GameData\\Jak1\\Backup\\DGO-PAL\\GAME", "C:\\GameData\\Jak1\\Backup\\DISC-PAL\\CGO\\GAME.CGO"] } ] } diff --git a/common/util/DgoReader.cpp b/common/util/DgoReader.cpp index fe81cd88b6..2e1def774f 100644 --- a/common/util/DgoReader.cpp +++ b/common/util/DgoReader.cpp @@ -58,4 +58,4 @@ std::string DgoReader::description_as_json() const { } return j.dump(4); -} \ No newline at end of file +} diff --git a/decompiler/analysis/stack_spill.cpp b/decompiler/analysis/stack_spill.cpp index 4db7b20257..f366e09171 100644 --- a/decompiler/analysis/stack_spill.cpp +++ b/decompiler/analysis/stack_spill.cpp @@ -78,6 +78,7 @@ struct StackInstrInfo { constexpr StackInstrInfo stack_instrs[] = {{InstructionKind::SQ, false, 16, false}, {InstructionKind::LQ, true, 16, false}, {InstructionKind::SW, false, 4, false}, + {InstructionKind::SH, false, 2, false}, {InstructionKind::SB, false, 1, false}, {InstructionKind::LBU, true, 1, false}, //{InstructionKind::LWU, true, 4, false} @@ -111,4 +112,4 @@ StackSpillMap build_spill_map(const std::vector& instructions, Rang map.finalize(); return map; } -} // namespace decompiler \ No newline at end of file +} // namespace decompiler diff --git a/decompiler/analysis/type_analysis.cpp b/decompiler/analysis/type_analysis.cpp index 990bf3f38c..a3491aae35 100644 --- a/decompiler/analysis/type_analysis.cpp +++ b/decompiler/analysis/type_analysis.cpp @@ -15,7 +15,8 @@ TypeState construct_initial_typestate(const TypeSpec& f_ts, const Env& env) { } // todo, more specific process types for behaviors. - result.get(Register(Reg::GPR, Reg::S6)) = TP_Type::make_from_ts(TypeSpec("process")); + result.get(Register(Reg::GPR, Reg::S6)) = + TP_Type::make_from_ts(TypeSpec(f_ts.try_get_tag("behavior").value_or("process"))); // initialize stack slots as uninitialized for (auto slot_info : env.stack_spills().map()) { diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index ada72f4021..fcdbb606cb 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -622,6 +622,13 @@ :bitfield #t :type uint32 (display-marks 0) + (bit1 1) + (bit2 2) + (bit3 3) + (bit4 4) + (bit5 5) + (bit6 6) + (bit7 7) (bit8 8) (bit13 13) ) @@ -977,7 +984,7 @@ (new (symbol type basic) _type_ 0) (activate (_type_ process-tree basic pointer) process-tree 9) (deactivate (_type_) none 10) - (dummy-method-11 () none 11) + (dummy-method-11 (_type_ object) none 11) (run-logic? (_type_) symbol 12) (dummy-method () none 13) ) @@ -1001,12 +1008,12 @@ (allow-to-run process-mask :offset-assert 12) (next-pid int32 :offset-assert 16) (fast-stack-top pointer :offset-assert 20) - (current-process basic :offset-assert 24) + (current-process process :offset-assert 24) (relocating-process basic :offset-assert 28) (relocating-min int32 :offset-assert 32) (relocating-max int32 :offset-assert 36) (relocating-offset int32 :offset-assert 40) - (low-memory-message basic :offset-assert 44) + (low-memory-message symbol :offset-assert 44) ) :method-count-assert 9 :size-assert #x30 @@ -1155,14 +1162,14 @@ (trans (function object) :offset-assert 20) (post function :offset-assert 24) (enter (function object object object object object object object) :offset-assert 28) - (event (function basic int basic event-message-block object) :offset-assert 32) + (event (function process int symbol event-message-block object) :offset-assert 32) ) (:methods (new (symbol type basic function (function object) (function object object object object object object object) (function object) - (function basic int basic event-message-block object)) _type_ 0) + (function process int symbol event-message-block object)) _type_ 0) ) :method-count-assert 9 :size-assert #x24 @@ -1170,10 +1177,10 @@ ) (deftype event-message-block (structure) - ((to basic :offset-assert 0) - (from basic :offset-assert 4) + ((to process :offset-assert 0) + (from process :offset-assert 4) (num-params int32 :offset-assert 8) - (message basic :offset-assert 12) + (message symbol :offset-assert 12) (param uint64 7 :offset-assert 16) ) :method-count-assert 9 @@ -1208,7 +1215,7 @@ (state state :offset-assert #x38) (trans-hook function :offset-assert #x3c) (post-hook function :offset-assert #x40) - (event-hook (function basic int basic event-message-block object) :offset-assert #x44) + (event-hook (function process int symbol event-message-block object) :offset-assert #x44) (allocated-length int32 :offset-assert #x48) (next-state state :offset-assert #x4c) (heap-base pointer :offset-assert #x50) @@ -1222,7 +1229,7 @@ (new (symbol type basic int) _type_ 0) (activate (_type_ process-tree basic pointer) process-tree 9) (deactivate (process) none 10) - (dummy-method-11 () none 11) + (dummy-method-11 (_type_ object) none 11) (run-logic? (process) symbol 12) (dummy-method () none 13) ) @@ -4394,28 +4401,31 @@ ;; - Types +(declare-type art-group basic) ;; custom fields (deftype load-dir (basic) ((unknown basic :offset-assert 4) - (string-array (array string) :offset-assert 8) - (data-array (array basic) :score -50 :offset-assert 12) + (string-array (array string) :offset-assert 8) ;; these are the names + (data-array (array basic) :score -50 :offset-assert 12) ;; this is the file data. ) :flag-assert #xb00000010 (:methods (new (symbol type int basic) _type_ 0) - (dummy-9 () none 9) - (dummy-10 () none 10) + ;; these methods dont exist + (dummy-9 (_type_ string symbol kheap int) art-group 9) + (dummy-10 (_type_ art-group) art-group 10) ) ) ;; custom fields -(declare-type art-group basic) (deftype load-dir-art-group (load-dir) ((art-group-array (array art-group) :offset 12) ) :flag-assert #xb00000010 (:methods (new (symbol type int basic) _type_ 0) + (dummy-9 (_type_ string symbol kheap int) art-group 9) + (dummy-10 (_type_ art-group) art-group 10) ) ) @@ -4428,13 +4438,13 @@ (heap kheap :inline :offset-assert 32) (pending-load-file string :offset-assert 48) (pending-load-file-part int32 :offset-assert 52) - (pending-load-file-owner uint64 :offset-assert 56) + (pending-load-file-owner handle :offset-assert 56) (pending-load-file-priority float :offset-assert 64) (load-file string :offset-assert 68) (load-file-part int32 :offset-assert 72) - (load-file-owner uint64 :offset-assert 80) + (load-file-owner handle :offset-assert 80) (load-file-priority float :offset-assert 88) - (buf uint32 :offset-assert 92) + (buf pointer :offset-assert 92) (len int32 :offset-assert 96) (art-group art-group :offset-assert 100) ) @@ -4443,23 +4453,25 @@ :flag-assert #x1000000068 (:methods (new (symbol type int) _type_ 0) - (dummy-9 (_type_ symbol int symbol float) none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) - (dummy-15 () none 15) + (want-file (_type_ string int handle float) int 9) + (update (_type_) int 10) + (inactive? (_type_) symbol 11) + (file-status (_type_ string int) symbol 12) + (link-file (_type_ art-group) art-group 13) + (unlink-file (_type_ art-group) int 14) + (unlock! (_type_) symbol 15) ) ) (deftype spool-anim (basic) ((name string :offset 16) ;; why? - (index int32 :offset-assert 20) + (buf1 external-art-buffer :offset 16) ;; custom + (buf2 external-art-buffer :offset-assert 20) ;; custom (also what?) + (index int32 :offset 20) (parts int32 :offset-assert 24) (priority float :offset-assert 28) - (owner uint64 :offset-assert 32) - (command-list basic :offset-assert 40) + (owner handle :offset-assert 32) + (command-list pair :offset-assert 40) ) :pack-me :method-count-assert 9 @@ -4467,14 +4479,13 @@ :flag-assert #x90000002c ) -; todo inline basics (deftype external-art-control (basic) ((buffer external-art-buffer 2 :offset-assert 4) - (rec spool-anim 3 :inline) - (spool-lock uint64 :offset-assert 160) - (reserve-buffer basic :offset-assert 168) + (rec spool-anim 3 :inline :offset-assert 16) + (spool-lock handle :offset-assert 160) + (reserve-buffer external-art-buffer :offset-assert 168) (reserve-buffer-count int32 :offset-assert 172) - (active-stream basic :offset-assert 176) + (active-stream string :offset-assert 176) (preload-stream spool-anim :inline :offset-assert 184) (last-preload-stream spool-anim :inline :offset-assert 232) (end-pad uint32) @@ -4484,14 +4495,14 @@ :flag-assert #x1100000118 (:methods (new (symbol type) _type_ 0) - (dummy-9 (_type_ symbol) none 9) - (dummy-10 (_type_) none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) - (dummy-15 () none 15) - (dummy-16 () none 16) + (update (_type_ symbol) int 9) + (clear-rec (_type_) int 10) + (spool-push (_type_ string int process float) int 11) + (file-status (_type_ string int) symbol 12) + (reserve-alloc (_type_) kheap 13) + (reserve-free (_type_ kheap) int 14) + (none-reserved? (_type_) symbol 15) + (try-preload-stream (_type_ string int process float) int 16) ) ) @@ -6857,13 +6868,13 @@ ;; - Symbols -(define-extern *ocean-work* ocean-work) ;; unknown type -(define-extern *ocean-facing* int) ;; unknown type -(define-extern *ocean-off* symbol) ;; unknown type -(define-extern *ocean-mid-off* symbol) ;; unknown type -(define-extern *ocean-near-off* symbol) ;; unknown type -(define-extern *ocean-heights* symbol) ;; unknown type -(define-extern *ocean-verts* symbol) ;; unknown type +(define-extern *ocean-work* ocean-work) +(define-extern *ocean-facing* int) +(define-extern *ocean-off* symbol) +(define-extern *ocean-mid-off* symbol) +(define-extern *ocean-near-off* symbol) +(define-extern *ocean-heights* symbol) +(define-extern *ocean-verts* symbol) ;; ---------------------- @@ -6874,25 +6885,25 @@ ;; - Symbols -(define-extern *ocean-left-table* (pointer float)) ;; unknown type -(define-extern *ocean-right-table* (pointer float)) ;; unknown type -(define-extern *ocean-up-table* (pointer float)) ;; unknown type -(define-extern *ocean-down-table* (pointer float)) ;; unknown type -(define-extern *ocean-down-left-table* (pointer float)) ;; unknown type -(define-extern *ocean-down-right-table* (pointer float)) ;; unknown type -(define-extern *ocean-up-right-table* (pointer float)) ;; unknown type -(define-extern *ocean-up-left-table* (pointer float)) ;; unknown type -(define-extern *ocean-trans-left-table* (pointer float)) ;; unknown type -(define-extern *ocean-trans-right-table* (pointer float)) ;; unknown type -(define-extern *ocean-trans-up-table* (pointer float)) ;; unknown type -(define-extern *ocean-trans-down-table* (pointer float)) ;; unknown type -(define-extern *ocean-trans-down-left-table* (pointer float)) ;; unknown type -(define-extern *ocean-trans-down-right-table* (pointer float)) ;; unknown type -(define-extern *ocean-trans-up-right-table* (pointer float)) ;; unknown type -(define-extern *ocean-trans-up-left-table* (pointer float)) ;; unknown type -(define-extern *ocean-trans-corner-table* (pointer float)) ;; unknown type -(define-extern *ocean-trans-strip-array* (pointer float)) ;; unknown type -(define-extern *ocean-trans-st-table* (pointer float)) ;; unknown type +(define-extern *ocean-left-table* (pointer float)) +(define-extern *ocean-right-table* (pointer float)) +(define-extern *ocean-up-table* (pointer float)) +(define-extern *ocean-down-table* (pointer float)) +(define-extern *ocean-down-left-table* (pointer float)) +(define-extern *ocean-down-right-table* (pointer float)) +(define-extern *ocean-up-right-table* (pointer float)) +(define-extern *ocean-up-left-table* (pointer float)) +(define-extern *ocean-trans-left-table* (pointer float)) +(define-extern *ocean-trans-right-table* (pointer float)) +(define-extern *ocean-trans-up-table* (pointer float)) +(define-extern *ocean-trans-down-table* (pointer float)) +(define-extern *ocean-trans-down-left-table* (pointer float)) +(define-extern *ocean-trans-down-right-table* (pointer float)) +(define-extern *ocean-trans-up-right-table* (pointer float)) +(define-extern *ocean-trans-up-left-table* (pointer float)) +(define-extern *ocean-trans-corner-table* (pointer float)) +(define-extern *ocean-trans-strip-array* (pointer float)) +(define-extern *ocean-trans-st-table* (pointer float)) ;; ---------------------- @@ -6903,25 +6914,25 @@ ;; - Symbols -(define-extern *ocean-spheres-village1* ocean-spheres) ;; unknown type -(define-extern *ocean-colors-village1* ocean-colors) ;; unknown type -(define-extern *ocean-near-indices-village1* ocean-near-indices) ;; unknown type -(define-extern *ocean-trans-indices-village1* ocean-trans-indices) ;; unknown type -(define-extern *ocean-mid-indices-village1* ocean-mid-indices) ;; unknown type -(define-extern *ocean-mid-masks-village1* ocean-mid-masks) ;; unknown type -(define-extern *ocean-spheres-village2* ocean-spheres) ;; unknown type -(define-extern *ocean-colors-village2* ocean-colors) ;; unknown type -(define-extern *ocean-near-indices-village2* ocean-near-indices) ;; unknown type -(define-extern *ocean-trans-indices-village2* ocean-trans-indices) ;; unknown type -(define-extern *ocean-mid-indices-village2* ocean-mid-indices) ;; unknown type -(define-extern *ocean-mid-masks-village2* ocean-mid-masks) ;; unknown type -(define-extern *ocean-near-indices-sunken* ocean-near-indices) ;; unknown type -(define-extern *ocean-trans-indices-sunken* ocean-trans-indices) ;; unknown type -(define-extern *ocean-mid-indices-sunken* ocean-mid-indices) ;; unknown type -(define-extern *ocean-mid-masks-sunken* ocean-mid-masks) ;; unknown type -(define-extern *ocean-map-village1* ocean-map) ;; unknown type -(define-extern *ocean-map-village2* ocean-map) ;; unknown type -(define-extern *ocean-map-sunken* ocean-map) ;; unknown type +(define-extern *ocean-spheres-village1* ocean-spheres) +(define-extern *ocean-colors-village1* ocean-colors) +(define-extern *ocean-near-indices-village1* ocean-near-indices) +(define-extern *ocean-trans-indices-village1* ocean-trans-indices) +(define-extern *ocean-mid-indices-village1* ocean-mid-indices) +(define-extern *ocean-mid-masks-village1* ocean-mid-masks) +(define-extern *ocean-spheres-village2* ocean-spheres) +(define-extern *ocean-colors-village2* ocean-colors) +(define-extern *ocean-near-indices-village2* ocean-near-indices) +(define-extern *ocean-trans-indices-village2* ocean-trans-indices) +(define-extern *ocean-mid-indices-village2* ocean-mid-indices) +(define-extern *ocean-mid-masks-village2* ocean-mid-masks) +(define-extern *ocean-near-indices-sunken* ocean-near-indices) +(define-extern *ocean-trans-indices-sunken* ocean-trans-indices) +(define-extern *ocean-mid-indices-sunken* ocean-mid-indices) +(define-extern *ocean-mid-masks-sunken* ocean-mid-masks) +(define-extern *ocean-map-village1* ocean-map) +(define-extern *ocean-map-village2* ocean-map) +(define-extern *ocean-map-sunken* ocean-map) ;; ---------------------- @@ -6943,8 +6954,6 @@ ;; - Types -;;;;;;;;;; -;;;;;;;;;; (deftype sky-color-hour (structure) ((snapshot1 int32 :offset-assert 0) (snapshot2 int32 :offset-assert 4) @@ -6978,12 +6987,12 @@ (r-sun float :offset 16) (r-halo float :offset 20) (r-aurora float :offset 24) - (c-sun-start uint32 :offset 32) - (c-sun-end uint32 :offset 48) - (c-halo-start uint32 :offset 36) - (c-halo-end uint32 :offset 52) - (c-aurora-start uint32 :offset 40) - (c-aurora-end uint32 :offset 56) + (c-sun-start rgba :offset 32) + (c-sun-end rgba :offset 48) + (c-halo-start rgba :offset 36) + (c-halo-end rgba :offset 52) + (c-aurora-start rgba :offset 40) + (c-aurora-end rgba :offset 56) ) :method-count-assert 9 :size-assert #x40 @@ -7015,10 +7024,8 @@ ) (deftype sky-upload-data (basic) - ( - ;(data UNKNOWN 27 :offset-assert 16) - (circle sky-circle-data :inline :offset-assert 16) - (sun sky-sun-data 2 :inline :offset-assert 288) + ((circle sky-circle-data :inline :offset-assert 16) + (sun sky-sun-data 2 :inline :offset-assert 288) (moon sky-moon-data :inline :offset-assert 416) (data uint128 27 :offset 16) ) @@ -7049,7 +7056,7 @@ (giftag-roof qword :inline :offset-assert 32) (giftag-ocean qword :inline :offset-assert 48) (fog vector :inline :offset-assert 64) - (sky uint32 8 :offset-assert 80) + (sky uint32 8 :offset-assert 80) (time float :offset-assert 112) (off-s-0 uint16 :offset-assert 116) (off-t-0 uint16 :offset-assert 118) @@ -7085,10 +7092,10 @@ ;; - Symbols -(define-extern *sky-parms* sky-parms) ;; unknown type -(define-extern *sky-upload-data* sky-upload-data) ;; unknown type -(define-extern *sky-drawn* symbol) ;; unknown type -(define-extern *cloud-drawn* symbol) ;; unknown type +(define-extern *sky-parms* sky-parms) +(define-extern *sky-upload-data* sky-upload-data) +(define-extern *sky-drawn* symbol) +(define-extern *cloud-drawn* symbol) ;; ---------------------- @@ -7295,9 +7302,9 @@ ;; - Symbols -(define-extern *palette-fade-controls* palette-fade-controls) ;; unknown type -(define-extern *time-of-day-mode* int) ;; unknown type -(define-extern *time-of-day-context* time-of-day-context) ;; unknown type +(define-extern *palette-fade-controls* palette-fade-controls) +(define-extern *time-of-day-mode* int) +(define-extern *time-of-day-context* time-of-day-context) ;; ---------------------- @@ -7472,8 +7479,8 @@ :size-assert #x20 :flag-assert #xf00000020 (:methods - (dummy-13 (_type_) int 13) - (dummy-14 (_type_) int 14) + (link-art! (_type_) art-group 13) + (unlink-art! (_type_) int 14) ) ) @@ -7596,7 +7603,7 @@ ;; - Functions -(define-extern new-dynamic-structure (function symbol type int structure)) ;; unknown type +(define-extern new-dynamic-structure (function symbol type int structure)) ;; ---------------------- @@ -8464,7 +8471,7 @@ ;; - Symbols -(define-extern *generic-debug* generic-debug) ;; unknown type +(define-extern *generic-debug* generic-debug) ;; ---------------------- @@ -8637,10 +8644,10 @@ ;; - Symbols -(define-extern *shadow-queue* shadow-queue) ;; unknown type -(define-extern *shadow* symbol) ;; unknown type -(define-extern *shadow-object* symbol) ;; unknown type -(define-extern *shadow-debug* symbol) ;; unknown type +(define-extern *shadow-queue* shadow-queue) +(define-extern *shadow* symbol) +(define-extern *shadow-object* symbol) +(define-extern *shadow-debug* symbol) ;; ---------------------- @@ -8743,7 +8750,7 @@ ) (deftype level-buffer-state (structure) - ((name basic :offset-assert 0) + ((name symbol :offset-assert 0) (display? symbol :offset-assert 4) (force-vis? symbol :offset-assert 8) (force-inside? symbol :offset-assert 12) @@ -8772,29 +8779,29 @@ (want-display-level (_type_ symbol symbol) int 12) (want-vis (_type_ symbol) int 13) (want-force-vis (_type_ symbol symbol) int 14) - (dummy-15 () none 15) - (dummy-16 () none 16) - (dummy-17 () none 17) - (dummy-18 () none 18) - (dummy-19 () none 19) + (dummy-15 (_type_ pair) none 15) + (dummy-16 (_type_ float) int 16) + (dummy-17 (_type_ pair) int 17) + (dummy-18 (_type_) int 18) + (dummy-19 (_type_) int 19) (dummy-20 () none 20) ) ) (deftype continue-point (basic) ((name string :offset-assert 4) - (level basic :offset-assert 8) + (level symbol :offset-assert 8) (flags uint32 :offset-assert 12) (trans vector :inline :offset-assert 16) (quat quaternion :inline :offset-assert 32) (camera-trans vector :inline :offset-assert 48) - (camera-rot float 9 :offset-assert 64) - (load-commands pair :offset-assert 100) - (vis-nick basic :offset-assert 104) - (lev0 basic :offset-assert 108) - (disp0 basic :offset-assert 112) - (lev1 basic :offset-assert 116) - (disp1 basic :offset-assert 120) + (camera-rot float 9 :offset-assert 64) + (load-commands pair :offset-assert 100) + (vis-nick symbol :offset-assert 104) + (lev0 symbol :offset-assert 108) + (disp0 symbol :offset-assert 112) + (lev1 symbol :offset-assert 116) + (disp1 symbol :offset-assert 120) ) :method-count-assert 10 :size-assert #x7c @@ -8861,7 +8868,7 @@ (initialize! (_type_ symbol game-save string) _type_ 9) (adjust (_type_ symbol float handle) float 10) (task-complete? (_type_ game-task) symbol 11) - (lookup-entity-perm-by-aid (_type_ uint) entity-perm 12) + (lookup-entity-perm-by-aid (_type_ actor-id) entity-perm 12) (get-entity-task-perm (_type_ game-task) entity-perm 13) (copy-perms-from-level! (_type_ level) none 14) (copy-perms-to-level! (_type_ level) none 15) @@ -8883,7 +8890,7 @@ ;; - Symbols -(define-extern *GAME-bank* game-bank) ;; unknown type +(define-extern *GAME-bank* game-bank) (define-extern *game-info* game-info) @@ -9269,7 +9276,7 @@ ;; - Symbols -(define-extern *merc-globals* symbol) ;; unknown type +(define-extern *merc-globals* symbol) ;; ---------------------- @@ -9282,7 +9289,7 @@ ;;;; engine (define-extern *background-draw-engine* engine) -(define-extern *matrix-engine* (array handle)) ;; unknown type +(define-extern *matrix-engine* (array handle)) (define-extern *camera-engine* engine) (define-extern *debug-engine* engine) @@ -9467,48 +9474,48 @@ ;; - Symbols -(define-extern *walk-mods* surface) ;; unknown type -(define-extern *walk-no-turn-mods* surface) ;; unknown type -(define-extern *turn-around-mods* surface) ;; unknown type -(define-extern *duck-mods* surface) ;; unknown type -(define-extern *duck-attack-mods* surface) ;; unknown type -(define-extern *jump-mods* surface) ;; unknown type -(define-extern *double-jump-mods* surface) ;; unknown type -(define-extern *smack-jump-mods* surface) ;; unknown type -(define-extern *high-jump-mods* surface) ;; unknown type -(define-extern *launch-jump-mods* surface) ;; unknown type -(define-extern *forward-high-jump-mods* surface) ;; unknown type -(define-extern *flip-jump-mods* surface) ;; unknown type -(define-extern *forward-jump-mods* surface) ;; unknown type -(define-extern *forward-pole-jump-mods* surface) ;; unknown type -(define-extern *attack-mods* surface) ;; unknown type -(define-extern *jump-attack-mods* surface) ;; unknown type -(define-extern *uppercut-jump-mods* surface) ;; unknown type -(define-extern *run-attack-mods* surface) ;; unknown type -(define-extern *wheel-mods* surface) ;; unknown type -(define-extern *wheel-flip-mods* surface) ;; unknown type -(define-extern *flop-mods* surface) ;; unknown type -(define-extern *flop-land-mods* surface) ;; unknown type -(define-extern *wade-mods* surface) ;; unknown type -(define-extern *swim-mods* surface) ;; unknown type -(define-extern *dive-mods* surface) ;; unknown type -(define-extern *dive-bottom-mods* surface) ;; unknown type -(define-extern *pole-mods* surface) ;; unknown type -(define-extern *grab-mods* surface) ;; unknown type -(define-extern *edge-grab-mods* surface) ;; unknown type -(define-extern *empty-mods* surface) ;; unknown type -(define-extern *neutral-mods* surface) ;; unknown type -(define-extern *stone-surface* surface) ;; unknown type -(define-extern *edge-surface* surface) ;; unknown type -(define-extern *wade-surface* surface) ;; unknown type -(define-extern *slope-surface* surface) ;; unknown type -(define-extern *quicksand-surface* surface) ;; unknown type -(define-extern *tar-surface* surface) ;; unknown type -(define-extern *grass-surface* surface) ;; unknown type -(define-extern *ice-surface* surface) ;; unknown type -(define-extern *tread-surface* surface) ;; unknown type -(define-extern *standard-ground-surface* surface) ;; unknown type -(define-extern *swim-surface* surface) ;; unknown type +(define-extern *walk-mods* surface) +(define-extern *walk-no-turn-mods* surface) +(define-extern *turn-around-mods* surface) +(define-extern *duck-mods* surface) +(define-extern *duck-attack-mods* surface) +(define-extern *jump-mods* surface) +(define-extern *double-jump-mods* surface) +(define-extern *smack-jump-mods* surface) +(define-extern *high-jump-mods* surface) +(define-extern *launch-jump-mods* surface) +(define-extern *forward-high-jump-mods* surface) +(define-extern *flip-jump-mods* surface) +(define-extern *forward-jump-mods* surface) +(define-extern *forward-pole-jump-mods* surface) +(define-extern *attack-mods* surface) +(define-extern *jump-attack-mods* surface) +(define-extern *uppercut-jump-mods* surface) +(define-extern *run-attack-mods* surface) +(define-extern *wheel-mods* surface) +(define-extern *wheel-flip-mods* surface) +(define-extern *flop-mods* surface) +(define-extern *flop-land-mods* surface) +(define-extern *wade-mods* surface) +(define-extern *swim-mods* surface) +(define-extern *dive-mods* surface) +(define-extern *dive-bottom-mods* surface) +(define-extern *pole-mods* surface) +(define-extern *grab-mods* surface) +(define-extern *edge-grab-mods* surface) +(define-extern *empty-mods* surface) +(define-extern *neutral-mods* surface) +(define-extern *stone-surface* surface) +(define-extern *edge-surface* surface) +(define-extern *wade-surface* surface) +(define-extern *slope-surface* surface) +(define-extern *quicksand-surface* surface) +(define-extern *tar-surface* surface) +(define-extern *grass-surface* surface) +(define-extern *ice-surface* surface) +(define-extern *tread-surface* surface) +(define-extern *standard-ground-surface* surface) +(define-extern *swim-surface* surface) ;; ---------------------- @@ -9554,7 +9561,7 @@ ;; - Symbols -(define-extern *pat-mode-info* (inline-array pat-mode-info)) ;; unknown type +(define-extern *pat-mode-info* (inline-array pat-mode-info)) ;; ---------------------- @@ -9658,7 +9665,7 @@ (declare-type process-drawable process) (define-extern process-drawable-art-error (state string process-drawable)) -(define-extern *FACT-bank* fact-bank) ;; unknown type +(define-extern *FACT-bank* fact-bank) ;; ---------------------- @@ -9669,7 +9676,6 @@ ;; - Types -(declare-type process-drawable process) (deftype align-control (basic) ((flags uint32 :offset-assert 4) (process process-drawable :offset-assert 8) @@ -9703,25 +9709,29 @@ ;; - Types -(declare-type collide-shape basic) -(declare-type water-control basic) +(declare-type nav-control basic) +(declare-type path-control basic) +(declare-type vol-control basic) +(declare-type actor-link-info basic) (declare-type sparticle-launch-control basic) +(declare-type water-control basic) +(declare-type collide-shape basic) (deftype process-drawable (process) ((root trsqv :offset-assert 112) (node-list cspace-array :offset-assert 116) (draw draw-control :offset-assert 120) (skel joint-control :offset-assert 124) - (nav basic :offset-assert 128) + (nav nav-control :offset-assert 128) (align align-control :offset-assert 132) - (path basic :offset-assert 136) - (vol basic :offset-assert 140) + (path path-control :offset-assert 136) + (vol vol-control :offset-assert 140) (fact fact-info :offset-assert 144) - (link basic :offset-assert 148) + (link actor-link-info :offset-assert 148) (part sparticle-launch-control :offset-assert 152) (water water-control :offset-assert 156) (sound ambient-sound :offset-assert 160) (state-flags uint32 :offset-assert 164) - (state-time uint64 :offset-assert 168) + (state-time seconds :offset-assert 168) ) :heap-base #x40 :method-count-assert 20 @@ -9846,9 +9856,9 @@ ((new-trans-hook function :offset-assert 176) (cur-trans-hook function :offset-assert 180) (cur-event-hook function :offset-assert 184) - (new-joint-anim basic :offset-assert 188) + (new-joint-anim art-joint-anim :offset-assert 188) (new-joint-anim-blend uint64 :offset-assert 192) - (anim-mode basic :offset-assert 200) + (anim-mode symbol :offset-assert 200) (cur-grab-handle uint64 :offset-assert 208) (cur-target-handle uint64 :offset-assert 216) (old-grab-pos vector :inline :offset-assert 224) @@ -10811,7 +10821,7 @@ (pat-ignore-mask pat-surface :offset-assert 148) (event-self basic :offset-assert 152) (event-other basic :offset-assert 156) - (root-prim basic :offset-assert 160) + (root-prim collide-shape-prim :offset-assert 160) (riders basic :offset-assert 164) (backup-collide-as uint64 :offset-assert 168) (backup-collide-with uint64 :offset-assert 176) @@ -11203,14 +11213,14 @@ (define-extern cspace-by-name (function process-drawable string cspace)) (define-extern cspace-by-name-no-fail (function process-drawable string cspace)) (define-extern cspace-index-by-name-no-fail (function process-drawable string int)) -(define-extern num-func-none (function joint-control-channel float)) -(define-extern num-func-+! (function joint-control-channel float float)) -(define-extern num-func--! (function joint-control-channel float float)) -(define-extern num-func-loop! (function joint-control-channel float float)) +(define-extern num-func-none (function joint-control-channel float float float)) +(define-extern num-func-+! (function joint-control-channel float float float)) +(define-extern num-func--! (function joint-control-channel float float float)) +(define-extern num-func-loop! (function joint-control-channel float float float)) (define-extern num-func-seek! (function joint-control-channel float float float)) -(define-extern num-func-blend-in! (function joint-control-channel float float)) -(define-extern num-func-chan (function joint-control-channel float float)) -(define-extern num-func-identity (function joint-control-channel float)) +(define-extern num-func-blend-in! (function joint-control-channel float float float)) +(define-extern num-func-chan (function joint-control-channel float float float)) +(define-extern num-func-identity (function joint-control-channel float float float)) ;; ---------------------- @@ -11432,7 +11442,7 @@ (deftype sidekick (process-drawable) ((control control-info :offset 112) (anim-seed uint64 :offset 192) - (shadow-in-movie? basic :offset-assert 200) + (shadow-in-movie? symbol :offset-assert 200) ) :heap-base #x60 :method-count-assert 20 @@ -12781,8 +12791,8 @@ (user-uint8 uint8 8 :offset 0) (status entity-perm-status :offset-assert 8) (dummy uint8 1 :offset-assert 10) - (task uint8 :offset-assert 11) - (aid uint32 :offset-assert 12) + (task game-task :offset-assert 11) + (aid actor-id :offset-assert 12) (quad uint128 :offset 0) ) :pack-me @@ -12804,8 +12814,8 @@ (trans vector :inline :offset-assert 32) (perm entity-perm :inline :offset-assert 48) (status uint16 :offset 56) ;; overlays - (aid uint32 :offset 60) - (task uint8 :offset 59) + (aid actor-id :offset 60) + (task game-task :offset 59) ) :method-count-assert 10 :size-assert #x40 @@ -13354,7 +13364,7 @@ :size-assert #x10 :flag-assert #x1a00000010 (:methods - (new (symbol type process) _type_) + (new (symbol type process) _type_ 0) (get-matching-actor-type-mask (_type_ type) int 9) (actor-count-before (_type_) int 10) (link (_type_) entity-actor 11) @@ -13365,12 +13375,12 @@ (apply-function-forward (_type_ (function entity-actor object object) object) int 16) (apply-function-reverse (_type_ (function entity-actor object object) object) int 17) (apply-all (_type_ (function entity-actor object object) object) int 18) - (send-to-all (_type_ object) none 19) - (send-to-all-after (_type_ object) object 20) - (send-to-all-before (_type_ object) object 21) - (send-to-next-and-prev (_type_ object) none 22) - (send-to-next (_type_ object) none 23) - (send-to-prev (_type_ object) none 24) + (send-to-all (_type_ symbol) none 19) + (send-to-all-after (_type_ symbol) object 20) + (send-to-all-before (_type_ symbol) object 21) + (send-to-next-and-prev (_type_ symbol) none 22) + (send-to-next (_type_ symbol) none 23) + (send-to-prev (_type_ symbol) none 24) (actor-count (_type_) int 25) ) ) @@ -14477,7 +14487,7 @@ (define-extern str-load (function string int pointer int symbol)) (define-extern str-load-status (function (pointer int32) symbol)) (define-extern str-load-cancel (function none)) -(define-extern str-play-async (function string pointer none)) +(define-extern str-play-async (function string sound-id none)) (define-extern str-play-stop (function string none)) (define-extern str-play-queue (function string none)) (define-extern str-ambient-play (function string none)) @@ -14564,19 +14574,19 @@ ;; - Types (deftype sound-iop-info (basic) - ((frame uint32 :offset 16) + ((frame uint32 :offset 16) (strpos int32 :offset-assert 20) - (str-id uint32 :offset-assert 24) - (str-id-sign int32 :offset 24) + (str-id sound-id :offset-assert 24) + (str-id-sign int32 :offset 24) (freemem uint32 :offset-assert 28) - (chinfo uint8 48 :offset-assert 32) + (chinfo uint8 48 :offset-assert 32) (freemem2 uint32 :offset-assert 80) (nocd uint32 :offset-assert 84) (dirtycd uint32 :offset-assert 88) - (diskspeed uint32 2 :offset-assert 92) + (diskspeed uint32 2 :offset-assert 92) (lastspeed uint32 :offset-assert 100) (dupseg int32 :offset-assert 104) - (times uint32 41 :offset-assert 108) + (times uint32 41 :offset-assert 108) (times-seq uint32 :offset-assert 272) ) :method-count-assert 9 @@ -14623,8 +14633,8 @@ (define-extern sound-command->string (function sound-command string)) (define-extern sound-name= (function sound-name sound-name symbol)) (define-extern str-is-playing? (function symbol)) -(define-extern current-str-id (function int)) -(define-extern current-str-pos (function int int)) +(define-extern current-str-id (function sound-id)) +(define-extern current-str-pos (function sound-id int)) (define-extern is-cd-in? (function symbol)) (define-extern check-irx-version (function int)) (define-extern sound-bank-load (function sound-name sound-id)) @@ -16067,7 +16077,7 @@ (define-extern sp-launch-particles-var function) (define-extern sp-get-particle function) (define-extern particle-adgif function) -(define-extern lookup-part-group-by-name function) +(define-extern lookup-part-group-by-name (function string basic)) (define-extern lookup-part-group-pointer-by-name function) (define-extern unlink-part-group-by-heap (function kheap int)) (define-extern particle-setup-adgif function) @@ -16169,13 +16179,14 @@ (define-extern ja-channel-push! (function int int int)) (define-extern ja-channel-set! (function int int)) (define-extern kill-current-level-hint (function pair pair symbol none)) -(define-extern level-hint-surpress! function) +(define-extern level-hint-surpress! (function none)) (define-extern ja-aframe-num (function int float)) -(define-extern ja-abort-spooled-anim function) -(define-extern art-group-load-check function) -(define-extern drawable-load function) -(define-extern art-load function) -(define-extern ja-play-spooled-anim function) +(define-extern ja-abort-spooled-anim (function spool-anim art-joint-anim int int :behavior process-drawable)) +(define-extern art-group-load-check (function string kheap int art-group)) +(define-extern drawable-load (function drawable kheap drawable)) +(define-extern art-load (function string kheap art)) +(define-extern ja-play-spooled-anim (function spool-anim art-joint-anim art-joint-anim (function process-drawable symbol) int :behavior process-drawable)) +(define-extern link (function pointer pointer int kheap int pointer)) ;; - Symbols @@ -16185,8 +16196,8 @@ ;; - Unknowns (define-extern *art-control* external-art-control) -;;(define-extern *preload-spool-anims* object) ;; unknown type -;;(define-extern *stack-top* object) ;; unknown type +(define-extern *preload-spool-anims* symbol) +(define-extern *stack-top* pointer) ;; ---------------------- @@ -16256,17 +16267,17 @@ :size-assert #x10 :flag-assert #xc00000010 (:methods - (dummy-9 () none 9) + (dummy-9 (_type_ vector int float process-drawable) none 9) (dummy-10 () none 10) (dummy-11 () none 11) ) ) (deftype process-taskable (process-drawable) - ((tasks basic :offset-assert 176) + ((tasks task-control :offset-assert 176) (query gui-query :inline :offset-assert 180) (old-target-pos transformq :inline :offset-assert 208) - (cell-for-task uint8 :offset-assert 256) + (cell-for-task game-task :offset-assert 256) (cell-x uint64 :offset-assert 264) (cam-joint-index int32 :offset-assert 272) (skippable basic :offset-assert 276) @@ -16293,41 +16304,40 @@ :method-count-assert 53 :size-assert #x17c :flag-assert #x350110017c - ;; inherited inspect of process-drawable (:methods - (dummy-20 () none 20) - (dummy-21 () none 21) - (dummy-22 () none 22) - (dummy-23 () none 23) - (dummy-24 () none 24) - (dummy-25 () none 25) - (dummy-26 () none 26) - (dummy-27 () none 27) - (dummy-28 () none 28) - (dummy-29 () none 29) - (dummy-30 () none 30) - (dummy-31 () none 31) - (dummy-32 () none 32) - (dummy-33 () none 33) - (dummy-34 () none 34) - (dummy-35 () none 35) - (dummy-36 () none 36) - (dummy-37 () none 37) - (dummy-38 () none 38) - (dummy-39 () none 39) - (dummy-40 () none 40) - (dummy-41 () none 41) - (dummy-42 () none 42) - (dummy-43 () none 43) - (dummy-44 () none 44) - (dummy-45 () none 45) - (dummy-46 () none 46) - (dummy-47 () none 47) - (dummy-48 () none 48) - (dummy-49 () none 49) - (dummy-50 () none 50) - (dummy-51 () none 51) - (dummy-52 () none 52) + (dummy-20 (_type_) none 20) + (dummy-21 (_type_) none 21) + (dummy-22 (_type_) none 22) + (dummy-23 (_type_) none 23) + (dummy-24 (_type_) none 24) + (dummy-25 (_type_) none 25) + (dummy-26 (_type_) none 26) + (dummy-27 (_type_) none 27) + (dummy-28 (_type_) none 28) + (dummy-29 (_type_) none 29) + (dummy-30 (_type_) none 30) + (dummy-31 (_type_) none 31) + (dummy-32 (_type_ symbol) spool-anim 32) + (dummy-33 (_type_) none 33) + (dummy-34 (_type_) none 34) + (dummy-35 (_type_) none 35) + (dummy-36 (_type_) none 36) + (dummy-37 (_type_) none 37) + (dummy-38 (_type_) none 38) + (dummy-39 (_type_) none 39) + (dummy-40 (_type_ object skeleton-group int int vector int) none 40) + (dummy-41 (_type_) none 41) + (dummy-42 (_type_) none 42) + (dummy-43 (_type_) none 43) + (dummy-44 (_type_) none 44) + (dummy-45 (_type_) none 45) + (dummy-46 (_type_) none 46) + (dummy-47 (_type_) none 47) + (dummy-48 (_type_) none 48) + (dummy-49 (_type_) none 49) + (dummy-50 (_type_) none 50) + (dummy-51 (_type_) none 51) + (dummy-52 (_type_) none 52) ) ) @@ -16992,10 +17002,10 @@ ;; - Functions (define-extern sky-set-sun-radii (function sky-parms int float float float symbol)) -(define-extern sky-set-sun-colors (function sky-parms int uint uint uint uint symbol)) -(define-extern sky-set-sun-colors-sun (function sky-parms int uint uint symbol)) -(define-extern sky-set-sun-colors-halo (function sky-parms int uint uint symbol)) -(define-extern sky-set-sun-colors-aurora (function sky-parms int uint uint symbol)) +(define-extern sky-set-sun-colors (function sky-parms int rgba rgba rgba rgba symbol)) +(define-extern sky-set-sun-colors-sun (function sky-parms int rgba rgba symbol)) +(define-extern sky-set-sun-colors-halo (function sky-parms int rgba rgba symbol)) +(define-extern sky-set-sun-colors-aurora (function sky-parms int rgba rgba symbol)) (define-extern sky-set-orbit (function sky-parms int float float float float float float symbol)) @@ -17170,14 +17180,14 @@ (define-extern load-state-want-levels (function symbol symbol int)) (define-extern load-state-want-display-level (function symbol symbol int)) (define-extern load-state-want-force-vis (function symbol symbol int)) -(define-extern command-get-param function) -(define-extern entity-birth-no-kill function) +(define-extern command-get-param (function object symbol symbol)) +(define-extern entity-birth-no-kill (function entity none)) (define-extern part-tracker-init function) -(define-extern command-list-get-process function) -(define-extern command-get-quoted-param function) -(define-extern command-get-int function) -(define-extern ambient-hint-spawn function) -(define-extern command-get-float function) +(define-extern command-list-get-process (function object process)) +(define-extern command-get-quoted-param (function object symbol symbol)) +(define-extern command-get-int (function object int int)) +(define-extern ambient-hint-spawn (function symbol symbol process-tree none)) +(define-extern command-get-float (function object float float)) (define-extern process-by-ename function) (define-extern point-in-polygon function) (define-extern try-corner function) @@ -18411,7 +18421,7 @@ ;; - Functions -(define-extern process-entity-status! (function process int symbol symbol)) +(define-extern process-entity-status! (function process entity-perm-status symbol int)) (define-extern process-grab? (function process symbol)) (define-extern process-release? (function process symbol)) (define-extern ja-post (function int)) @@ -18641,7 +18651,7 @@ (define-extern line-in-view-frustum? function) (define-extern process-drawable-random-point! function) -(define-extern process-drawable-from-entity! function) +(define-extern process-drawable-from-entity! (function process-drawable object none)) (define-extern cam-launcher-long-joystick function) (define-extern hide-hud-quick function) (define-extern command-get-process function) @@ -31658,63 +31668,24 @@ ;; - Types -; (deftype farmer (process-taskable) -; () -; :method-count-assert 53 -; :size-assert #x17c -; :flag-assert #x350110017c -; ;; not enough basic ops -; (:methods -; (dummy-9 () none 9) -; (dummy-10 () none 10) -; (dummy-11 () none 11) -; (dummy-12 () none 12) -; (dummy-13 () none 13) -; (dummy-14 () none 14) -; (dummy-15 () none 15) -; (dummy-16 () none 16) -; (dummy-17 () none 17) -; (dummy-18 () none 18) -; (dummy-19 () none 19) -; (dummy-20 () none 20) -; (dummy-21 () none 21) -; (dummy-22 () none 22) -; (dummy-23 () none 23) -; (dummy-24 () none 24) -; (dummy-25 () none 25) -; (dummy-26 () none 26) -; (dummy-27 () none 27) -; (dummy-28 () none 28) -; (dummy-29 () none 29) -; (dummy-30 () none 30) -; (dummy-31 () none 31) -; (dummy-32 () none 32) -; (dummy-33 () none 33) -; (dummy-34 () none 34) -; (dummy-35 () none 35) -; (dummy-36 () none 36) -; (dummy-37 () none 37) -; (dummy-38 () none 38) -; (dummy-39 () none 39) -; (dummy-40 () none 40) -; (dummy-41 () none 41) -; (dummy-42 () none 42) -; (dummy-43 () none 43) -; (dummy-44 () none 44) -; (dummy-45 () none 45) -; (dummy-46 () none 46) -; (dummy-47 () none 47) -; (dummy-48 () none 48) -; (dummy-49 () none 49) -; (dummy-50 () none 50) -; (dummy-51 () none 51) -; (dummy-52 () none 52) -; ) -; ) +(deftype farmer (process-taskable) + () + :heap-base #x110 + :method-count-assert 53 + :size-assert #x17c + :flag-assert #x350110017c + (:methods + (dummy-method-11 (_type_ object) none 11) + (dummy-31 (_type_) none 31) + (dummy-32 (_type_ symbol) spool-anim 32) + (dummy-41 (_type_) none 41) + (dummy-43 (_type_) none 43) + ) + ) ;; - Unknowns -;;(define-extern *farmer-sg* object) ;; unknown type +(define-extern *farmer-sg* skeleton-group) ;; unknown type ;; ---------------------- @@ -31933,104 +31904,92 @@ ;; - Types -; (deftype yakow-bank (basic) -; ((walk-cycle-frame-count float :offset-assert 4) -; (run-cycle-frame-count float :offset-assert 8) -; (walk-speed meters :offset-assert 12) -; (run-speed meters :offset-assert 16) -; (walk-anim-speed float :offset-assert 20) -; (run-anim-speed float :offset-assert 24) -; (walk-away-dist meters :offset-assert 28) -; (run-away-dist meters :offset-assert 32) -; (walk-rotate-speed float :offset-assert 36) -; (run-rotate-speed float :offset-assert 40) -; (walk-turn-time uint64 :offset-assert 48) -; (run-turn-time uint64 :offset-assert 56) -; (max-walk-speed float :offset-assert 64) -; (min-run-speed float :offset-assert 68) -; (walk-run-blend-rate float :offset-assert 72) -; (walk-turn-blend-rate float :offset-assert 76) -; (max-run-speed float :offset-assert 80) -; (acceleration meters :offset-assert 84) -; (default-patrol-time uint64 :offset-assert 88) -; (default-idle-distance meters :offset-assert 96) -; (safe-distance meters :offset-assert 100) -; (min-run-anim-speed float :offset-assert 104) -; (max-run-anim-speed float :offset-assert 108) -; (min-walk-anim-speed float :offset-assert 112) -; (speed-boost-impulse meters :offset-assert 116) -; ) -; :method-count-assert 9 -; :size-assert #x78 -; :flag-assert #x900000078 -; ) +(deftype yakow-bank (basic) + ((walk-cycle-frame-count float :offset-assert 4) + (run-cycle-frame-count float :offset-assert 8) + (walk-speed meters :offset-assert 12) + (run-speed meters :offset-assert 16) + (walk-anim-speed float :offset-assert 20) + (run-anim-speed float :offset-assert 24) + (walk-away-dist meters :offset-assert 28) + (run-away-dist meters :offset-assert 32) + (walk-rotate-speed float :offset-assert 36) + (run-rotate-speed float :offset-assert 40) + (walk-turn-time uint64 :offset-assert 48) + (run-turn-time uint64 :offset-assert 56) + (max-walk-speed float :offset-assert 64) + (min-run-speed float :offset-assert 68) + (walk-run-blend-rate float :offset-assert 72) + (walk-turn-blend-rate float :offset-assert 76) + (max-run-speed float :offset-assert 80) + (acceleration meters :offset-assert 84) + (default-patrol-time uint64 :offset-assert 88) + (default-idle-distance meters :offset-assert 96) + (safe-distance meters :offset-assert 100) + (min-run-anim-speed float :offset-assert 104) + (max-run-anim-speed float :offset-assert 108) + (min-walk-anim-speed float :offset-assert 112) + (speed-boost-impulse meters :offset-assert 116) + ) + :method-count-assert 9 + :size-assert #x78 + :flag-assert #x900000078 + ) -; (deftype yakow (process-drawable) -; ((player-attack-id int32 :offset-assert 176) -; (walk-run-blend float :offset-assert 180) -; (walk-turn-blend float :offset-assert 184) -; (run-mode basic :offset-assert 188) -; (travel-speed meters :offset-assert 192) -; (final-speed meters :offset-assert 196) -; (rotate-speed float :offset-assert 200) -; (turn-time uint64 :offset-assert 208) -; (vulnerable basic :offset-assert 216) -; (grazing basic :offset-assert 220) -; (push-velocity vector :inline :offset-assert 224) -; (home-base vector :inline :offset-assert 240) -; (dest-base vector :inline :offset-assert 256) -; (dest-rot degrees :offset-assert 272) -; (enable-turn-around basic :offset-assert 276) -; (rotating basic :offset-assert 280) -; (in-pen basic :offset-assert 284) -; ) -; :method-count-assert 20 -; :size-assert #x120 -; :flag-assert #x1400b00120 -; ;; inherited inspect of process-drawable -; (:methods -; (dummy-9 () none 9) -; (dummy-10 () none 10) -; (dummy-11 () none 11) -; (dummy-12 () none 12) -; (dummy-13 () none 13) -; (dummy-14 () none 14) -; (dummy-15 () none 15) -; (dummy-16 () none 16) -; (dummy-17 () none 17) -; (dummy-18 () none 18) -; (dummy-19 () none 19) -; ) -; ) +(deftype yakow (process-drawable) + ((player-attack-id int32 :offset-assert 176) + (walk-run-blend float :offset-assert 180) + (walk-turn-blend float :offset-assert 184) + (run-mode basic :offset-assert 188) + (travel-speed meters :offset-assert 192) + (final-speed meters :offset-assert 196) + (rotate-speed float :offset-assert 200) + (turn-time uint64 :offset-assert 208) + (vulnerable basic :offset-assert 216) + (grazing basic :offset-assert 220) + (push-velocity vector :inline :offset-assert 224) + (home-base vector :inline :offset-assert 240) + (dest-base vector :inline :offset-assert 256) + (dest-rot degrees :offset-assert 272) + (enable-turn-around basic :offset-assert 276) + (rotating basic :offset-assert 280) + (in-pen basic :offset-assert 284) + ) + :method-count-assert 20 + :size-assert #x120 + :heap-base #xb0 + :flag-assert #x1400b00120 + ;; inherited inspect of process-drawable + ) ;; - Functions -(define-extern yakow-task-complete? function) +(define-extern yakow-task-complete? (function symbol none :behavior yakow)) (define-extern yakow-facing-player? function) -(define-extern yakow-post function) +(define-extern yakow-post (function none :behavior yakow)) (define-extern yakow-facing-point? function) (define-extern yakow-facing-direction? function) (define-extern yakow-generate-travel-vector function) -(define-extern yakow-common-post function) -(define-extern yakow-cam function) -(define-extern yakow-default-event-handler function) +(define-extern yakow-common-post (function none :behavior yakow)) +(define-extern yakow-cam (function none)) +(define-extern yakow-default-event-handler (function process-drawable int symbol event-message-block object :behavior yakow)) (define-extern yakow-simple-post function) (define-extern yakow-run-post function) (define-extern yakow-blend-walk-run function) ;; - Unknowns -;;(define-extern *YAKOW-bank* object) ;; unknown type -;;(define-extern *yakow-sg* object) ;; unknown type -;;(define-extern yakow-graze object) ;; unknown type -;;(define-extern yakow-idle object) ;; unknown type -;;(define-extern yakow-run-away object) ;; unknown type -;;(define-extern yakow-graze-kicked object) ;; unknown type -;;(define-extern yakow-walk-to object) ;; unknown type -;;(define-extern yakow-notice object) ;; unknown type -;;(define-extern yakow-kicked object) ;; unknown type -;;(define-extern *village1cam-sg* object) ;; unknown type -;;(define-extern yakow-die object) ;; unknown type +(define-extern *YAKOW-bank* yakow-bank) ;; unknown type +(define-extern *yakow-sg* skeleton-group) ;; unknown type +(define-extern yakow-graze (state none)) ;; unknown type +(define-extern yakow-idle (state none)) ;; unknown type +(define-extern yakow-run-away state) ;; unknown type +(define-extern yakow-graze-kicked state) ;; unknown type +(define-extern yakow-walk-to state) ;; unknown type +(define-extern yakow-notice state) ;; unknown type +(define-extern yakow-kicked (state none)) ;; unknown type +(define-extern *village1cam-sg* skeleton-group) ;; unknown type +(define-extern yakow-die state) ;; unknown type ;; ---------------------- @@ -45436,16 +45395,16 @@ ;; - Types (deftype logo (process-drawable) - ((~Tcamera uint64 :offset-assert 176) - (~Tcamera-anim uint64 :offset-assert 184) - (~Tvolumes uint64 :offset-assert 192) - (~Tblack uint64 :offset-assert 200) - (~Ttarget uint64 :offset-assert 208) - (~Tsidekick uint64 :offset-assert 216) - (~Tmain-joint basic :offset-assert 224) - (~Tanim basic :offset-assert 228) - (~Tnext-anim basic :offset-assert 232) - (~Tdone? basic :offset-assert 236) + ((camera uint64 :offset-assert 176) + (camera-anim uint64 :offset-assert 184) + (volumes uint64 :offset-assert 192) + (black uint64 :offset-assert 200) + (target uint64 :offset-assert 208) + (sidekick uint64 :offset-assert 216) + (main-joint basic :offset-assert 224) + (anim basic :offset-assert 228) + (next-anim basic :offset-assert 232) + (done? basic :offset-assert 236) ) :heap-base #x80 :method-count-assert 24 @@ -45461,7 +45420,7 @@ ) (deftype logo-slave (process-drawable) - ((~Tmain-joint basic :offset-assert 176) + ((main-joint basic :offset-assert 176) ) :heap-base #x50 :method-count-assert 21 diff --git a/decompiler/config/jak1_ntsc_black_label/hacks.jsonc b/decompiler/config/jak1_ntsc_black_label/hacks.jsonc index f6af6c7fe7..bdc8bb7a2c 100644 --- a/decompiler/config/jak1_ntsc_black_label/hacks.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/hacks.jsonc @@ -241,9 +241,6 @@ "sp-process-block-2d", "sp-get-particle", - // loader BUG - "(method 10 external-art-buffer)", - // game-info BUG "(method 11 fact-info-target)", @@ -469,7 +466,9 @@ "debug-menu-send-msg", "debug-menu-find-from-template", "build-continue-menu", - "(method 8 process-tree)" + "(method 8 process-tree)", + "(method 16 load-state)", + "(method 15 load-state)" ], // If format is used with the wrong number of arguments, @@ -495,7 +494,8 @@ " pris-anim ~192H~5DK ~280Hpris-generic~456H~5DK~%": 2, " textures ~192H~5DK ~280Htextures~456H~5DK~%": 2, " entity ~192H~5DK~%": 2, - " misc ~192H~5DK ~280Hsprite~456H~5DK~%": 2 + " misc ~192H~5DK ~280Hsprite~456H~5DK~%": 2, + "ERROR: ~A in spool anim loop for ~A ~D, but not loaded.~": 3 }, "blocks_ending_in_asm_branch": { diff --git a/decompiler/config/jak1_ntsc_black_label/inputs.jsonc b/decompiler/config/jak1_ntsc_black_label/inputs.jsonc index 40138334a2..43d16a7230 100644 --- a/decompiler/config/jak1_ntsc_black_label/inputs.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/inputs.jsonc @@ -259,15 +259,10 @@ ], // uncomment the next line to extract audio to wave files. - //"audio_dir_file_name": "VAG/VAGDIR.AYB", - "audio_dir_file_name" : "", + //"audio_dir_file_name": "jak1/VAG", + "audio_dir_file_name": "", "streamed_audio_file_names": [ - "VAG/VAGWAD.ENG", - "VAG/VAGWAD.FRE", - "VAG/VAGWAD.GER", - "VAG/VAGWAD.ITA", - "VAG/VAGWAD.JAP", - "VAG/VAGWAD.SPA" + "VAGWAD.ENG" ] } diff --git a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc index d8c69f6f60..86751a127d 100644 --- a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc @@ -609,7 +609,11 @@ ["L255", "float", true] ], - "load-boundary": [["L327", "(inline-array lbvtx)", true, 3]], + "load-boundary": [ + ["L327", "(inline-array lbvtx)", true, 3], + ["L336", "float", true], + ["L337", "float", true] + ], "shrub-work": [["L3", "instance-shrub-work", true]], @@ -1197,6 +1201,35 @@ ["L78", "rgba", true], ["L79", "rgba", true] ], + + "loader": [ + ["L279", "float", true], + ["L283", "float", true], + ["L285", "float", true], + ["L286", "float", true], + ["L280", "float", true], + ["L281", "float", true], + ["L278", "float", true] + ], + + "yakow": [ + ["L150", "float", true], + ["L162", "float", true], + ["L160", "float", true], + ["L155", "float", true], + ["L163", "float", true], + ["L159", "float", true], + ["L154", "float", true], + ["L153", "float", true], + ["L169", "float", true], + ["L161", "float", true], + ["L152", "float", true], + ["L149", "float", true] + ], + + "farmer": [ + ["L50", "float", true] + ], // please do not add things after this entry! git is dumb. "object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": [] diff --git a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc index 603f0d8293..5be358041a 100644 --- a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc @@ -543,5 +543,23 @@ "(method 10 align-control)": [[16, "vector"]], + "(method 15 load-state)": [ + [16, "event-message-block"], + [96, "event-message-block"] + ], + + "(method 43 farmer)": [ + [16, "vector"] + ], + + "yakow-post": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"], + [80, "vector"], + [96, "vector"] + ], + "placeholder-do-not-add-below!": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index 072577c196..b89c08c8fa 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -1082,6 +1082,71 @@ [196, "s4", "pointer"], [[203, 210], "s4", "game-save-tag"] ], + + "drawable-load": [ + [17, "s5", "drawable"], + [18, "s5", "drawable"], + [20, "s5", "drawable"], + [25, "s5", "drawable"], + [27, "s5", "drawable"] + ], + "art-load": [ + [9, "s5", "art"], + [13, "s5", "art"], + [15, "s5", "art"] + ], + "art-group-load-check": [ + [22, "s3", "art-group"], + [31, "s3", "art-group"], + [43, "s3", "art-group"], + [50, "s3", "art-group"], + [52, "s3", "art-group"] + ], + "(method 13 art-group)": [[16, "s3", "art-joint-anim"]], + "(method 14 art-group)": [[16, "s3", "art-joint-anim"]], + + "(method 9 external-art-control)": [ + [171, "s4", "external-art-buffer"], + [172, "s4", "external-art-buffer"], + [173, "s4", "external-art-buffer"], + [177, "s4", "external-art-buffer"], + [183, "s4", "external-art-buffer"], + [190, "s4", "external-art-buffer"], + + [233, "s4", "spool-anim"], + [240, "s4", "spool-anim"], + [243, "s4", "spool-anim"], + [248, "s4", "spool-anim"], + [249, "s4", "spool-anim"], + [253, "s4", "spool-anim"], + [257, "s4", "spool-anim"] + ], + + "(method 10 external-art-control)": [ + [18, "v1", "spool-anim"] + ], + + "(method 16 external-art-control)": [ + [37, "a0", "process"], + [17, "s5", "process-drawable"] + ], + + "ja-play-spooled-anim": [ + [154, "a0", "process"], + [286, "s2", "art-joint-anim"], + [294, "s2", "art-joint-anim"], + [295, "s2", "art-joint-anim"], + [306, "s2", "art-joint-anim"], + [320, "s2", "art-joint-anim"], + [324, "s2", "art-joint-anim"] + ], + + "(method 11 external-art-control)": [ + [127, "a0", "process"], + [151, "a0", "process"], + [168, "a0", "process"], + [18, "s5", "process-drawable"] + ], "debug-menu-item-var-update-display-str": [ [[44, 49], "v1", "int"], @@ -1179,6 +1244,28 @@ "blackout": [[[20, 24], "v1", "dma-packet"]], "(method 10 external-art-control)": [[18, "v1", "pointer"]], + + "(method 15 load-state)": [ + [31, "t9", "(function int)"], + [291, "s5", "entity-actor"], + [370, "s3", "process-drawable"] + ], + + "yakow-default-event-handler": [ + [27, "a0", "collide-shape"], + [32, "a0", "collide-shape"] + ], + + "(method 11 yakow)": [ + [184, "v1", "vector"], + [186, "v1", "vector"], + [189, "v1", "vector"] + ], + + "yakow-post": [ + [114, "a0", "collide-shape-moving"], + [130, "a0", "collide-shape-moving"] + ], "placeholder-do-not-add-below": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc index 2eb7e03098..d6dfbe6966 100644 --- a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc @@ -2392,6 +2392,24 @@ } }, + "(method 13 art-group)": { + "vars":{ + "s3-0":"art-elt", + "s4-0":"janim", + "v1-9":"janim-group", + "s2-0":"success" + } + }, + + "(method 14 art-group)": { + "vars":{ + "s3-0":"art-elt", + "s4-0":"janim", + "v1-9":"janim-group", + "s3-1":"success" + } + }, + "(method 16 process-drawable)" : { "vars": { "s3-0":"body-T-world", @@ -2411,5 +2429,15 @@ "f0-6":"abs-vel-limit", "f0-10":"dpos" } - } + }, + + "ja-play-spooled-anim" : { + "vars": { + "sv-16":"spool-part", + "sv-28":"old-skel-status", + "sv-64":"spool-sound" + } + }, + + "aaaaaaaaaaaaaaaaaaaaaaa" : {} } diff --git a/decompiler/data/streamed_audio.cpp b/decompiler/data/streamed_audio.cpp index 8636b6e3de..21375891c1 100644 --- a/decompiler/data/streamed_audio.cpp +++ b/decompiler/data/streamed_audio.cpp @@ -181,9 +181,10 @@ AudioFileInfo process_audio_file(const std::vector& data, } void process_streamed_audio(const std::string& dir, const std::vector& audio_files) { - lg::info("Streaming audio: {}\n", dir); + auto dir_file_name = file_util::combine_path(dir, "VAGDIR.AYB"); + lg::info("Streaming audio: {}\n", dir_file_name); file_util::create_dir_if_needed(file_util::get_file_path({"assets", "streaming_audio"})); - auto dir_data = read_audio_dir(file_util::get_file_path({"iso_data", dir})); + auto dir_data = read_audio_dir(file_util::get_file_path({"iso_data", dir_file_name})); double audio_len = 0.f; std::vector langs; @@ -198,7 +199,7 @@ void process_streamed_audio(const std::string& dir, const std::vector obj length)) + (let ((v1-2 (-> obj data s3-0))) + (+! s5-0 (-> v1-2 used)) + (+! s4-0 (-> v1-2 total)) + (format #t "~3D: ~20S ~7D ~8D ~8D~%" s3-0 (-> v1-2 name) (-> v1-2 count) (-> v1-2 used) (-> v1-2 total)) + ) + ) + (format #t "total: ~8D ~8D~%" s5-0 s4-0) + ) + (format #t "-------------------------------------------------------------~%") + obj + ) + +(defmethod mem-usage object ((obj object) (arg0 memory-usage-block) (arg1 int)) + (if obj + (format #t "WARNING: mem-usage called on object, probably not what was wanted for ~A~%" obj) + ) + obj + ) + +(defmethod calculate-total memory-usage-block ((obj memory-usage-block)) + (let ((v0-0 0)) + (dotimes (v1-0 (-> obj length)) + (+! v0-0 (-> obj data v1-0 total)) + ) + v0-0 + ) + ) + +(defmethod reset! memory-usage-block ((obj memory-usage-block)) + (set! (-> obj length) 0) + (dotimes (v1-0 109) + (set! (-> obj data v1-0 used) 0) + (set! (-> obj data v1-0 total) 0) + (set! (-> obj data v1-0 count) 0) + ) + obj + ) + +(defun mem-size ((arg0 basic) (arg1 symbol) (arg2 int)) + (let ((gp-0 (new 'stack 'memory-usage-block))) + (mem-usage arg0 gp-0 arg2) + (if arg1 + (inspect gp-0) + ) + (calculate-total gp-0) + ) + ) + + +) + + diff --git a/goal_src/engine/draw/process-drawable-h.gc b/goal_src/engine/draw/process-drawable-h.gc index e0e173084f..b712fb26a3 100644 --- a/goal_src/engine/draw/process-drawable-h.gc +++ b/goal_src/engine/draw/process-drawable-h.gc @@ -42,12 +42,12 @@ ;; The following functions can be applied to a joint-control-channel to change the frame number. ;; They return the resulting frame number as well. -(defun num-func-none ((arg0 joint-control-channel)) +(defun num-func-none ((arg0 joint-control-channel) (arg2 float) (arg2 float)) "Don't change anything." (-> arg0 frame-num) ) -(defun num-func-+! ((arg0 joint-control-channel) (arg1 float)) +(defun num-func-+! ((arg0 joint-control-channel) (arg1 float) (arg2 float)) "Increment the frame number, taking into account the animation speed and current game rate." (let ((f0-1 (+ (-> arg0 frame-num) @@ -60,7 +60,7 @@ ) ) -(defun num-func--! ((arg0 joint-control-channel) (arg1 float)) +(defun num-func--! ((arg0 joint-control-channel) (arg1 float) (arg2 float)) "Decrement the frame number, taking into account the animation speed and current game rate." (let ((f0-1 (- (-> arg0 frame-num) @@ -73,7 +73,7 @@ ) ) -(defun num-func-loop! ((chan joint-control-channel) (inc float)) +(defun num-func-loop! ((chan joint-control-channel) (inc float) (arg2 float)) "Like num-func-+!, but will wrap to 0 after going past the end." ;; get the duration from the joint-animation-compressed. @@ -107,7 +107,7 @@ ) ) -(defun num-func-blend-in! ((arg0 joint-control-channel) (arg1 float)) +(defun num-func-blend-in! ((arg0 joint-control-channel) (arg1 float) (arg2 float)) "Seek frame-interp toward 1. Once its there, do a joint-control-reset." (let* ((v0-0 (seek (-> arg0 frame-interp) 1.0 (* arg1 (-> *display* time-adjust-ratio)))) (f30-0 (the-as float v0-0)) @@ -121,7 +121,7 @@ ) ) -(defun num-func-chan ((arg0 joint-control-channel) (arg1 float)) +(defun num-func-chan ((arg0 joint-control-channel) (arg1 float) (arg2 float)) "Copies the frame number from the channel arg1." ;; this is a super hack. ;; we know that we're in an inline-array of joint-control-channels @@ -143,7 +143,7 @@ ) ) -(defun num-func-identity ((arg0 joint-control-channel)) +(defun num-func-identity ((arg0 joint-control-channel) (arg1 float) (arg2 float)) "seems to be the same thing as none." (-> arg0 frame-num) ) diff --git a/goal_src/engine/entity/actor-link-h.gc b/goal_src/engine/entity/actor-link-h.gc index 3f236442d2..de4d5f3888 100644 --- a/goal_src/engine/entity/actor-link-h.gc +++ b/goal_src/engine/entity/actor-link-h.gc @@ -89,25 +89,25 @@ :size-assert #x10 :flag-assert #x1a00000010 (:methods - (new (symbol type process) _type_ 0) - (get-matching-actor-type-mask (_type_ type) int 9) - (actor-count-before (_type_) int 10) - (link (_type_) entity-actor 11) - (get-next (_type_) entity-actor 12) - (get-prev (_type_) entity-actor 13) - (get-next-process (_type_) process 14) - (get-prev-process (_type_) process 15) - (apply-function-forward (_type_ (function entity-actor object object) object) int 16) - (apply-function-reverse (_type_ (function entity-actor object object) object) int 17) - (apply-all (_type_ (function entity-actor object object) object) int 18) - (send-to-all (_type_ object) none 19) - (send-to-all-after (_type_ object) object 20) - (send-to-all-before (_type_ object) object 21) - (send-to-next-and-prev (_type_ object) none 22) - (send-to-next (_type_ object) none 23) - (send-to-prev (_type_ object) none 24) - (actor-count (_type_) int 25) - ) + (new (symbol type process) _type_ 0) + (get-matching-actor-type-mask (_type_ type) int 9) + (actor-count-before (_type_) int 10) + (link (_type_) entity-actor 11) + (get-next (_type_) entity-actor 12) + (get-prev (_type_) entity-actor 13) + (get-next-process (_type_) process 14) + (get-prev-process (_type_) process 15) + (apply-function-forward (_type_ (function entity-actor object object) object) int 16) + (apply-function-reverse (_type_ (function entity-actor object object) object) int 17) + (apply-all (_type_ (function entity-actor object object) object) int 18) + (send-to-all (_type_ symbol) none 19) + (send-to-all-after (_type_ symbol) object 20) + (send-to-all-before (_type_ symbol) object 21) + (send-to-next-and-prev (_type_ symbol) none 22) + (send-to-next (_type_ symbol) none 23) + (send-to-prev (_type_ symbol) none 24) + (actor-count (_type_) int 25) + ) ) ;;;;;;;;;;;;;;;; @@ -244,76 +244,51 @@ 0 ) -;; method 20 -(defmethod send-to-all-after actor-link-info ((obj actor-link-info) (message object)) - (with-pp - (let ((iter (-> obj next)) - (result (the object #f))) - (while iter - (let ((proc (-> (the entity-links (-> iter extra)) process))) - (when proc - (let ((msg-block (new 'stack-no-clear 'event-message-block))) - (set! (-> msg-block from) pp) - (set! (-> msg-block num-params) 0) - (set! (-> msg-block message) (the basic message)) +(defmethod send-to-all-after actor-link-info ((obj actor-link-info) (message symbol)) + "Send an event to all processes after this link with no parameters." - (let ((send-result (send-event-function (the process proc) msg-block))) - (set! result (and result send-result)) - ) - ) - ) - (set! iter (entity-actor-lookup iter 'next-actor 0)) + (let ((iter (-> obj next)) + (result (the object #f))) + (while iter + (let ((proc (-> (the entity-links (-> iter extra)) process))) + (when proc + (set! result (and result (send-event proc message))) ) + (set! iter (entity-actor-lookup iter 'next-actor 0)) ) - result ) + result ) ) -(defmethod send-to-all-before actor-link-info ((obj actor-link-info) (message object)) - (with-pp - (let ((iter (-> obj prev)) - (result (the object #f))) - (while iter - (let ((proc (-> (the entity-links (-> iter extra)) process))) - (when proc - (let ((msg-block (new 'stack-no-clear 'event-message-block))) - (set! (-> msg-block from) pp) - (set! (-> msg-block num-params) 0) - (set! (-> msg-block message) (the basic message)) +(defmethod send-to-all-before actor-link-info ((obj actor-link-info) (message symbol)) + "Send an event to all processes before this link with no parameters." - (let ((send-result (send-event-function (the process proc) msg-block))) - (set! result (and result send-result)) - ) - ) - ) - (set! iter (entity-actor-lookup iter 'prev-actor 0)) + (let ((iter (-> obj prev)) + (result (the object #f))) + (while iter + (let ((proc (-> (the entity-links (-> iter extra)) process))) + (when proc + (set! result (and result (send-event proc message))) ) + (set! iter (entity-actor-lookup iter 'prev-actor 0)) ) - result ) + result ) ) -(defmethod send-to-next actor-link-info ((obj actor-link-info) (arg0 object)) +(defmethod send-to-next actor-link-info ((obj actor-link-info) (message symbol)) "Send event arg0 to the next actor's process" - (with-pp - (let ((a0-1 (-> obj next))) - ;; do we have a next? - (when a0-1 - ;; get the actual process - (let ((a0-2 (-> (the-as entity-links (-> a0-1 extra)) process))) - ;; do we have a process? - (when a0-2 - ;; create a block on the stack - (let ((v1-4 (new 'stack-no-clear 'event-message-block))) - (set! (-> v1-4 from) pp) - (set! (-> v1-4 num-params) 0) - (set! (-> v1-4 message) (the-as basic arg0)) - ;; and send it! - (send-event-function (the process a0-2) v1-4) - ) - ) + + (let ((a0-1 (-> obj next))) + ;; do we have a next? + (when a0-1 + ;; get the actual process + (let ((a0-2 (-> (the-as entity-links (-> a0-1 extra)) process))) + ;; do we have a process? + (when a0-2 + (send-event a0-2 message) ) ) ) @@ -321,20 +296,14 @@ (none) ) -(defmethod send-to-prev actor-link-info ((obj actor-link-info) (arg0 object)) +(defmethod send-to-prev actor-link-info ((obj actor-link-info) (message symbol)) "Send event arg1 to the next actor's process." - (with-pp - (let ((a0-1 (-> obj prev))) - (when a0-1 - (let ((a0-2 (-> (the-as entity-links (-> a0-1 extra)) process))) - (when a0-2 - (let ((v1-4 (new 'stack-no-clear 'event-message-block))) - (set! (-> v1-4 from) pp) - (set! (-> v1-4 num-params) 0) - (set! (-> v1-4 message) (the-as basic arg0)) - (send-event-function (the process a0-2) v1-4) - ) - ) + + (let ((a0-1 (-> obj prev))) + (when a0-1 + (let ((a0-2 (-> (the-as entity-links (-> a0-1 extra)) process))) + (when a0-2 + (send-event a0-2 message) ) ) ) @@ -342,16 +311,17 @@ (none) ) -(defmethod send-to-next-and-prev actor-link-info ((obj actor-link-info) (arg0 object)) - "Send event arg0 to both next and prev." - (send-to-next obj arg0) - (send-to-prev obj arg0) +(defmethod send-to-next-and-prev actor-link-info ((obj actor-link-info) (msg symbol)) + "Send an event to both next and prev with no params." + + (send-to-next obj msg) + (send-to-prev obj msg) (none) ) -(defmethod send-to-all actor-link-info ((obj actor-link-info) (arg0 object)) - (send-to-all-after obj arg0) - (send-to-all-before obj arg0) +(defmethod send-to-all actor-link-info ((obj actor-link-info) (msg symbol)) + (send-to-all-after obj msg) + (send-to-all-before obj msg) (none) ) @@ -432,13 +402,9 @@ ) (defun actor-link-subtask-complete-hook ((arg0 entity-actor) (arg1 (pointer symbol))) - "Sets arg1 if the thing is complete. Returns the opposite value." + "Sets arg1 if the thing is complete. Does not continue the apply if the complete perm is set." (cond - ((nonzero? (logand - (-> (the-as entity-links (-> arg0 extra)) perm status) - (entity-perm-status complete) - ) - ) + ((logtest? (-> (the-as entity-links (-> arg0 extra)) perm status) (entity-perm-status complete)) (set! (-> arg1 0) #t) #f ) @@ -450,13 +416,9 @@ ) (defun actor-link-dead-hook ((arg0 entity-actor) (arg1 (pointer symbol))) - "Sets arg1 is the thing is dead. Returns the opposite value." + "Sets arg1 is the thing is dead. Does not continue the apply if the dead perm is set." (cond - ((nonzero? (logand - (-> (the-as entity-links (-> arg0 extra)) perm status) - (entity-perm-status dead) - ) - ) + ((logtest? (-> (the-as entity-links (-> arg0 extra)) perm status) (entity-perm-status dead)) (set! (-> arg1 0) #t) #f ) diff --git a/goal_src/engine/entity/entity-h.gc b/goal_src/engine/entity/entity-h.gc index 17d6d84a3f..a6c4e2cfe8 100644 --- a/goal_src/engine/entity/entity-h.gc +++ b/goal_src/engine/entity/entity-h.gc @@ -5,13 +5,8 @@ ;; name in dgo: entity-h ;; dgos: GAME, ENGINE -;; definition for symbol *generate-actor-vis*, type symbol (define *generate-actor-vis* #f) - -;; definition for symbol *generate-actor-vis-start*, type symbol (define *generate-actor-vis-start* #f) - -;; definition for symbol *generate-actor-vis-output*, type symbol (define *generate-actor-vis-output* #f) (defenum entity-perm-status @@ -31,43 +26,42 @@ ;; definition of type entity-perm (deftype entity-perm (structure) - ((user-object object 2 :offset-assert 0) - (user-uint64 uint64 :offset 0) - (user-float float 2 :offset 0) - (user-int32 int32 2 :offset 0) - (user-uint32 uint32 2 :offset 0) - (user-int16 int16 4 :offset 0) - (user-uint16 uint16 4 :offset 0) - (user-int8 int8 8 :offset 0) - (user-uint8 uint8 8 :offset 0) - (status entity-perm-status :offset-assert 8) - (dummy uint8 1 :offset-assert 10) - (task uint8 :offset-assert 11) - (aid uint32 :offset-assert 12) - (quad uint128 :offset 0) + ((user-object object 2 :offset-assert 0) + (user-uint64 uint64 :offset 0) + (user-float float 2 :offset 0) + (user-int32 int32 2 :offset 0) + (user-uint32 uint32 2 :offset 0) + (user-int16 int16 4 :offset 0) + (user-uint16 uint16 4 :offset 0) + (user-int8 int8 8 :offset 0) + (user-uint8 uint8 8 :offset 0) + (status entity-perm-status :offset-assert 8) + (dummy uint8 1 :offset-assert 10) + (task game-task :offset-assert 11) + (aid actor-id :offset-assert 12) + (quad uint128 :offset 0) ) :pack-me :method-count-assert 10 :size-assert #x10 :flag-assert #xa00000010 (:methods - (update-perm! (_type_ symbol entity-perm-status) _type_ 9) - ) + (update-perm! (_type_ symbol entity-perm-status) _type_ 9) + ) ) -;; definition of type entity-links (deftype entity-links (structure) - ((prev-link entity-links :offset-assert 0) - (next-link entity-links :offset-assert 4) - (entity entity :offset-assert 8) - (process process :offset-assert 12) - (level level :offset-assert 16) - (vis-id int32 :offset-assert 20) - (trans vector :inline :offset-assert 32) - (perm entity-perm :inline :offset-assert 48) - (status uint16 :offset 56) - (aid uint32 :offset 60) - (task uint8 :offset 59) + ((prev-link entity-links :offset-assert 0) + (next-link entity-links :offset-assert 4) + (entity entity :offset-assert 8) + (process process :offset-assert 12) + (level level :offset-assert 16) + (vis-id int32 :offset-assert 20) + (trans vector :inline :offset-assert 32) + (perm entity-perm :inline :offset-assert 48) + (status uint16 :offset 56) + (aid actor-id :offset 60) + (task game-task :offset 59) ) :method-count-assert 10 :size-assert #x40 @@ -77,17 +71,15 @@ ) ) -;; definition of type entity-perm-array (deftype entity-perm-array (inline-array-class) - ((data entity-perm :inline :dynamic :offset-assert 16)) + ((data entity-perm :inline :dynamic :offset-assert 16) + ) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 ) - (set! (-> entity-perm-array heap-base) (the-as uint 16)) -;; definition of type entity-links-array (deftype entity-links-array (inline-array-class) ((data entity-links :inline :dynamic :offset-assert 16) ) @@ -95,13 +87,11 @@ :size-assert #x10 :flag-assert #x900000010 ) - (set! (-> entity-links-array heap-base) (the-as uint 64)) -;; definition of type entity (deftype entity (res-lump) - ((trans vector :inline :offset-assert 32) - (aid uint32 :offset-assert 48) + ((trans vector :inline :offset-assert 32) + (aid uint32 :offset-assert 48) ) :method-count-assert 27 :size-assert #x34 @@ -115,45 +105,40 @@ ) ) -;; definition of type entity-camera (deftype entity-camera (entity) - ((connect connectable :inline :offset-assert 64) + ((connect connectable :inline :offset-assert 64) ) :method-count-assert 27 :size-assert #x50 :flag-assert #x1b00000050 ) -;; definition of type entity-ambient-data (deftype entity-ambient-data (structure) - ((user-object object 3 :offset-assert 0) - (function basic :offset-assert 12) - (quad uint128 :offset 0) - (user-uint64 uint64 1 :offset 0) - (user-float float 3 :offset 0) - (user-int32 int32 3 :offset 0) - (user-uint32 uint32 3 :offset 0) - (user-int16 int16 6 :offset 0) - (user-uint16 uint16 6 :offset 0) - (user-int8 int8 12 :offset 0) - (user-uint8 uint8 12 :offset 0) + ((user-object object 3 :offset-assert 0) + (function basic :offset-assert 12) + (quad uint128 :offset 0) + (user-uint64 uint64 1 :offset 0) + (user-float float 3 :offset 0) + (user-int32 int32 3 :offset 0) + (user-uint32 uint32 3 :offset 0) + (user-int16 int16 6 :offset 0) + (user-uint16 uint16 6 :offset 0) + (user-int8 int8 12 :offset 0) + (user-uint8 uint8 12 :offset 0) ) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 ) -;; definition of type entity-ambient-data-array (deftype entity-ambient-data-array (inline-array-class) () :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 ) - (set! (-> entity-ambient-data-array heap-base) (the-as uint 16)) -;; definition of type entity-ambient (deftype entity-ambient (entity) () :method-count-assert 29 @@ -165,33 +150,30 @@ ) ) -;; definition of type entity-actor -(declare-type nav-mesh basic) (deftype entity-actor (entity) - ((nav-mesh nav-mesh :offset-assert 52) - (etype type :offset-assert 56) - (task uint8 :offset-assert 60) - (vis-id uint16 :offset-assert 62) - (quat quaternion :inline :offset-assert 64) + ((nav-mesh nav-mesh :offset-assert 52) + (etype type :offset-assert 56) + (task uint8 :offset-assert 60) + (vis-id uint16 :offset-assert 62) + (quat quaternion :inline :offset-assert 64) ) :method-count-assert 31 :size-assert #x50 :flag-assert #x1f00000050 (:methods - (next-actor (_type_) entity-actor 27) - (prev-actor (_type_) entity-actor 28) - (dummy-29 () none 29) - (dummy-30 () none 30) - ) + (next-actor (_type_) entity-actor 27) + (prev-actor (_type_) entity-actor 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + ) ) -;; definition of type entity-info (deftype entity-info (basic) - ((ptype type :offset-assert 4) - (package basic :offset-assert 8) - (art-group pair :offset-assert 12) - (pool basic :offset-assert 16) - (heap-size int32 :offset-assert 20) + ((ptype type :offset-assert 4) + (package basic :offset-assert 8) + (art-group pair :offset-assert 12) + (pool basic :offset-assert 16) + (heap-size int32 :offset-assert 20) ) :method-count-assert 9 :size-assert #x18 @@ -205,23 +187,21 @@ (set! entity-nav-login (the-as (function entity-actor none) nothing)) ) -;; definition of type actor-bank (deftype actor-bank (basic) - ((pause-dist float :offset-assert 4) - (birth-dist float :offset-assert 8) - (birth-max int32 :offset-assert 12) + ((pause-dist float :offset-assert 4) + (birth-dist float :offset-assert 8) + (birth-max int32 :offset-assert 12) ) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 ) -;; definition for symbol *ACTOR-bank*, type actor-bank (define *ACTOR-bank* (new 'static 'actor-bank - :pause-dist 204800.0 - :birth-dist 901120.0 - :birth-max 10 + :pause-dist (meters 50) ;; actor activity range? + :birth-dist (meters 220) ;; draw distance or something? + :birth-max 10 ;; maximum actor births per frame? (it is known they dont all happen at once) ) ) diff --git a/goal_src/engine/game/game-h.gc b/goal_src/engine/game/game-h.gc index a59d48eb93..f53b765932 100644 --- a/goal_src/engine/game/game-h.gc +++ b/goal_src/engine/game/game-h.gc @@ -6,25 +6,29 @@ ;; dgos: GAME, ENGINE -(declare-type collide-shape basic) -(declare-type water-control basic) +(declare-type nav-control basic) +(declare-type path-control basic) +(declare-type vol-control basic) +(declare-type actor-link-info basic) (declare-type sparticle-launch-control basic) +(declare-type water-control basic) +(declare-type collide-shape basic) (deftype process-drawable (process) ((root trsqv :offset-assert 112) (node-list cspace-array :offset-assert 116) (draw draw-control :offset-assert 120) (skel joint-control :offset-assert 124) - (nav basic :offset-assert 128) + (nav nav-control :offset-assert 128) (align align-control :offset-assert 132) - (path basic :offset-assert 136) - (vol basic :offset-assert 140) + (path path-control :offset-assert 136) + (vol vol-control :offset-assert 140) (fact fact-info :offset-assert 144) - (link basic :offset-assert 148) + (link actor-link-info :offset-assert 148) (part sparticle-launch-control :offset-assert 152) (water water-control :offset-assert 156) (sound ambient-sound :offset-assert 160) (state-flags uint32 :offset-assert 164) - (state-time uint64 :offset-assert 168) + (state-time seconds :offset-assert 168) ) :heap-base #x40 :method-count-assert 20 @@ -144,4 +148,4 @@ ) -(declare-type target basic) \ No newline at end of file +(declare-type target process-drawable) \ No newline at end of file diff --git a/goal_src/engine/game/game-info-h.gc b/goal_src/engine/game/game-info-h.gc index 8ac3204405..9d29a57721 100644 --- a/goal_src/engine/game/game-info-h.gc +++ b/goal_src/engine/game/game-info-h.gc @@ -158,7 +158,7 @@ ;; the possible state for a level. (deftype level-buffer-state (structure) - ((name basic :offset-assert 0) ;; level name + ((name symbol :offset-assert 0) ;; level name (display? symbol :offset-assert 4) ;; should it be drawn? (force-vis? symbol :offset-assert 8) ;; ? should it have its vis loaded? (force-inside? symbol :offset-assert 12) ;; ? @@ -187,11 +187,11 @@ (want-display-level (_type_ symbol symbol) int 12) (want-vis (_type_ symbol) int 13) (want-force-vis (_type_ symbol symbol) int 14) - (dummy-15 () none 15) - (dummy-16 () none 16) - (dummy-17 () none 17) - (dummy-18 () none 18) - (dummy-19 () none 19) + (dummy-15 (_type_ pair) none 15) + (dummy-16 (_type_ float) int 16) + (dummy-17 (_type_ pair) int 17) + (dummy-18 (_type_) int 18) + (dummy-19 (_type_) int 19) (dummy-20 () none 20) ) ) @@ -206,19 +206,19 @@ ;; a game checkpoint (deftype continue-point (basic) - ((name string :offset-assert 4) - (level basic :offset-assert 8) - (flags uint32 :offset-assert 12) - (trans vector :inline :offset-assert 16) - (quat quaternion :inline :offset-assert 32) - (camera-trans vector :inline :offset-assert 48) - (camera-rot float 9 :offset-assert 64) - (load-commands pair :offset-assert 100) - (vis-nick basic :offset-assert 104) - (lev0 basic :offset-assert 108) - (disp0 basic :offset-assert 112) - (lev1 basic :offset-assert 116) - (disp1 basic :offset-assert 120) + ((name string :offset-assert 4) + (level symbol :offset-assert 8) + (flags uint32 :offset-assert 12) + (trans vector :inline :offset-assert 16) + (quat quaternion :inline :offset-assert 32) + (camera-trans vector :inline :offset-assert 48) + (camera-rot float 9 :offset-assert 64) + (load-commands pair :offset-assert 100) + (vis-nick symbol :offset-assert 104) + (lev0 symbol :offset-assert 108) + (disp0 symbol :offset-assert 112) + (lev1 symbol :offset-assert 116) + (disp1 symbol :offset-assert 120) ) :method-count-assert 10 :size-assert #x7c @@ -287,7 +287,7 @@ (initialize! (_type_ symbol game-save string) _type_ 9) (adjust (_type_ symbol float handle) float 10) (task-complete? (_type_ game-task) symbol 11) - (lookup-entity-perm-by-aid (_type_ uint) entity-perm 12) + (lookup-entity-perm-by-aid (_type_ actor-id) entity-perm 12) (get-entity-task-perm (_type_ game-task) entity-perm 13) (copy-perms-from-level! (_type_ level) none 14) (copy-perms-to-level! (_type_ level) none 15) diff --git a/goal_src/engine/game/game-info.gc b/goal_src/engine/game/game-info.gc index 061a975684..e171917912 100644 --- a/goal_src/engine/game/game-info.gc +++ b/goal_src/engine/game/game-info.gc @@ -551,10 +551,10 @@ ;; todo method 11 -(defmethod lookup-entity-perm-by-aid game-info ((obj game-info) (arg0 uint)) +(defmethod lookup-entity-perm-by-aid game-info ((obj game-info) (aid actor-id)) (let ((v1-0 (-> obj perm-list))) (countdown (a0-1 (-> v1-0 length)) - (if (= arg0 (-> v1-0 data a0-1 aid)) + (if (= aid (-> v1-0 data a0-1 aid)) (return (-> v1-0 data a0-1)) ) ) @@ -708,363 +708,125 @@ ) (defun-debug game-task->string ((arg0 game-task)) - (let ((v1-0 arg0)) - (cond - ((= v1-0 (game-task max)) - "max" - ) - ((= v1-0 (game-task assistant-village3)) - "assistant-village3" - ) - ((= v1-0 (game-task leaving-misty)) - "leaving-misty" - ) - ((= v1-0 (game-task plunger-lurker-hit)) - "plunger-lurker-hit" - ) - ((= v1-0 (game-task finalboss-movies)) - "finalboss-movies" - ) - ((= v1-0 (game-task village4-button)) - "village4-button" - ) - ((= v1-0 (game-task ogre-secret)) - "ogre-secret" - ) - ((= v1-0 (game-task intro)) - "intro" - ) - ((= v1-0 (game-task lavatube-start)) - "lavatube-start" - ) - ((= v1-0 (game-task lavatube-balls)) - "lavatube-balls" - ) - ((= v1-0 (game-task red-eggtop)) - "red-eggtop" - ) - ((= v1-0 (game-task village3-button)) - "village3-button" - ) - ((= v1-0 (game-task swamp-arm)) - "swamp-arm" - ) - ((= v1-0 (game-task village2-levitator)) - "village2-levitator" - ) - ((= v1-0 (game-task firecanyon-assistant)) - "firecanyon-assistant" - ) - ((= v1-0 (game-task village3-oracle-money2)) - "village3-oracle-money2" - ) - ((= v1-0 (game-task village3-oracle-money1)) - "village3-oracle-money1" - ) - ((= v1-0 (game-task village3-miner-money4)) - "village3-miner-money4" - ) - ((= v1-0 (game-task village3-miner-money3)) - "village3-miner-money3" - ) - ((= v1-0 (game-task village3-miner-money2)) - "village3-miner-money2" - ) - ((= v1-0 (game-task village3-miner-money1)) - "village3-miner-money1" - ) - ((= v1-0 (game-task training-buzzer)) - "training-buzzer" - ) - ((= v1-0 (game-task training-climb)) - "training-climb" - ) - ((= v1-0 (game-task training-door)) - "training-door" - ) - ((= v1-0 (game-task training-gimmie)) - "training-gimmie" - ) - ((= v1-0 (game-task citadel-buzzer)) - "citadel-buzzer" - ) - ((= v1-0 (game-task lavatube-buzzer)) - "lavatube-buzzer" - ) - ((= v1-0 (game-task lavatube-end)) - "lavatube-end" - ) - ((= v1-0 (game-task ogre-buzzer)) - "ogre-buzzer" - ) - ((= v1-0 (game-task ogre-end)) - "ogre-end" - ) - ((= v1-0 (game-task ogre-boss)) - "ogre-boss" - ) - ((= v1-0 (game-task cave-buzzer)) - "cave-buzzer" - ) - ((= v1-0 (game-task cave-platforms)) - "cave-platforms" - ) - ((= v1-0 (game-task cave-spider-tunnel)) - "cave-spider-tunnel" - ) - ((= v1-0 (game-task cave-swing-poles)) - "cave-swing-poles" - ) - ((= v1-0 (game-task cave-robot-climb)) - "cave-robot-climb" - ) - ((= v1-0 (game-task cave-dark-climb)) - "cave-dark-climb" - ) - ((= v1-0 (game-task cave-dark-crystals)) - "cave-dark-crystals" - ) - ((= v1-0 (game-task cave-gnawers)) - "cave-gnawers" - ) - ((= v1-0 (game-task village3-buzzer)) - "village3-buzzer" - ) - ((= v1-0 (game-task village2-buzzer)) - "village2-buzzer" - ) - ((= v1-0 (game-task village1-buzzer)) - "village1-buzzer" - ) - ((= v1-0 (game-task village3-extra1)) - "village3-extra1" - ) - ((= v1-0 (game-task citadel-sage-yellow)) - "citadel-sage-yellow" - ) - ((= v1-0 (game-task citadel-sage-red)) - "citadel-sage-red" - ) - ((= v1-0 (game-task citadel-sage-blue)) - "citadel-sage-blue" - ) - ((= v1-0 (game-task citadel-sage-green)) - "citadel-sage-green" - ) - ((= v1-0 (game-task firecanyon-end)) - "firecanyon-end" - ) - ((= v1-0 (game-task firecanyon-buzzer)) - "firecanyon-buzzer" - ) - ((= v1-0 (game-task snow-cage)) - "snow-cage" - ) - ((= v1-0 (game-task snow-bumpers)) - "snow-bumpers" - ) - ((= v1-0 (game-task snow-buzzer)) - "snow-buzzer" - ) - ((= v1-0 (game-task snow-bunnies)) - "snow-bunnies" - ) - ((= v1-0 (game-task snow-ball)) - "snow-ball" - ) - ((= v1-0 (game-task snow-fort)) - "snow-fort" - ) - ((= v1-0 (game-task snow-ram)) - "snow-ram" - ) - ((= v1-0 (game-task snow-eggtop)) - "snow-eggtop" - ) - ((= v1-0 (game-task rolling-ring-chase-2)) - "rolling-ring-chase-2" - ) - ((= v1-0 (game-task rolling-ring-chase-1)) - "rolling-ring-chase-1" - ) - ((= v1-0 (game-task rolling-buzzer)) - "rolling-buzzer" - ) - ((= v1-0 (game-task rolling-lake)) - "rolling-lake" - ) - ((= v1-0 (game-task rolling-plants)) - "rolling-plants" - ) - ((= v1-0 (game-task rolling-moles)) - "rolling-moles" - ) - ((= v1-0 (game-task rolling-robbers)) - "rolling-robbers" - ) - ((= v1-0 (game-task rolling-race)) - "rolling-race" - ) - ((= v1-0 (game-task sunken-spinning-room)) - "sunken-spinning-room" - ) - ((= v1-0 (game-task sunken-top-of-helix)) - "sunken-top-of-helix" - ) - ((= v1-0 (game-task sunken-buzzer)) - "sunken-buzzer" - ) - ((= v1-0 (game-task sunken-sharks)) - "sunken-sharks" - ) - ((= v1-0 (game-task sunken-room)) - "sunken-room" - ) - ((= v1-0 (game-task sunken-slide)) - "sunken-slide" - ) - ((= v1-0 (game-task sunken-pipe)) - "sunken-pipe" - ) - ((= v1-0 (game-task sunken-platforms)) - "sunken-platforms" - ) - ((= v1-0 (game-task swamp-buzzer)) - "swamp-buzzer" - ) - ((= v1-0 (game-task swamp-tether-4)) - "swamp-tether-4" - ) - ((= v1-0 (game-task swamp-tether-3)) - "swamp-tether-3" - ) - ((= v1-0 (game-task swamp-tether-2)) - "swamp-tether-2" - ) - ((= v1-0 (game-task swamp-tether-1)) - "swamp-tether-1" - ) - ((= v1-0 (game-task swamp-battle)) - "swamp-battle" - ) - ((= v1-0 (game-task swamp-flutflut)) - "swamp-flutflut" - ) - ((= v1-0 (game-task swamp-billy)) - "swamp-billy" - ) - ((= v1-0 (game-task village2-oracle-money2)) - "village2-oracle-money2" - ) - ((= v1-0 (game-task village2-oracle-money1)) - "village2-oracle-money1" - ) - ((= v1-0 (game-task village2-warrior-money)) - "village2-warrior-money" - ) - ((= v1-0 (game-task village2-geologist-money)) - "village2-geologist-money" - ) - ((= v1-0 (game-task village2-gambler-money)) - "village2-gambler-money" - ) - ((= v1-0 (game-task misty-eco-challenge)) - "misty-eco-challenge" - ) - ((= v1-0 (game-task misty-bike-jump)) - "misty-bike-jump" - ) - ((= v1-0 (game-task misty-buzzer)) - "misty-buzzer" - ) - ((= v1-0 (game-task misty-bike)) - "misty-bike" - ) - ((= v1-0 (game-task misty-cannon)) - "misty-cannon" - ) - ((= v1-0 (game-task misty-warehouse)) - "misty-warehouse" - ) - ((= v1-0 (game-task misty-boat)) - "misty-boat" - ) - ((= v1-0 (game-task misty-muse)) - "misty-muse" - ) - ((= v1-0 (game-task beach-sentinel)) - "beach-sentinel" - ) - ((= v1-0 (game-task beach-gimmie)) - "beach-gimmie" - ) - ((= v1-0 (game-task beach-buzzer)) - "beach-buzzer" - ) - ((= v1-0 (game-task beach-cannon)) - "beach-cannon" - ) - ((= v1-0 (game-task beach-seagull)) - "beach-seagull" - ) - ((= v1-0 (game-task beach-flutflut)) - "beach-flutflut" - ) - ((= v1-0 (game-task beach-pelican)) - "beach-pelican" - ) - ((= v1-0 (game-task beach-ecorocks)) - "beach-ecorocks" - ) - ((= v1-0 (game-task village1-oracle-money2)) - "village1-oracle-money2" - ) - ((= v1-0 (game-task village1-oracle-money1)) - "village1-oracle-money1" - ) - ((= v1-0 (game-task village1-uncle-money)) - "village1-uncle-money" - ) - ((= v1-0 (game-task village1-mayor-money)) - "village1-mayor-money" - ) - ((= v1-0 (game-task village1-yakow)) - "village1-yakow" - ) - ((= v1-0 (game-task jungle-temple-door)) - "jungle-temple-door" - ) - ((= v1-0 (game-task jungle-canyon-end)) - "jungle-canyon-end" - ) - ((= v1-0 (game-task jungle-buzzer)) - "jungle-buzzer" - ) - ((= v1-0 (game-task jungle-plant)) - "jungle-plant" - ) - ((= v1-0 (game-task jungle-fishgame)) - "jungle-fishgame" - ) - ((= v1-0 (game-task jungle-tower)) - "jungle-tower" - ) - ((= v1-0 (game-task jungle-lurkerm)) - "jungle-lurkerm" - ) - ((= v1-0 (game-task jungle-eggtop)) - "jungle-eggtop" - ) - ((= v1-0 (game-task complete)) - "complete" - ) - ((= v1-0 (game-task none)) - "none" - ) - (else - "*unknown*" - ) - ) + (case arg0 + (((game-task max)) "max") + (((game-task assistant-village3)) "assistant-village3") + (((game-task leaving-misty)) "leaving-misty") + (((game-task plunger-lurker-hit)) "plunger-lurker-hit") + (((game-task finalboss-movies)) "finalboss-movies") + (((game-task village4-button)) "village4-button") + (((game-task ogre-secret)) "ogre-secret") + (((game-task intro)) "intro") + (((game-task lavatube-start)) "lavatube-start") + (((game-task lavatube-balls)) "lavatube-balls") + (((game-task red-eggtop)) "red-eggtop") + (((game-task village3-button)) "village3-button") + (((game-task swamp-arm)) "swamp-arm") + (((game-task village2-levitator)) "village2-levitator") + (((game-task firecanyon-assistant)) "firecanyon-assistant") + (((game-task village3-oracle-money2)) "village3-oracle-money2") + (((game-task village3-oracle-money1)) "village3-oracle-money1") + (((game-task village3-miner-money4)) "village3-miner-money4") + (((game-task village3-miner-money3)) "village3-miner-money3") + (((game-task village3-miner-money2)) "village3-miner-money2") + (((game-task village3-miner-money1)) "village3-miner-money1") + (((game-task training-buzzer)) "training-buzzer") + (((game-task training-climb)) "training-climb") + (((game-task training-door)) "training-door") + (((game-task training-gimmie)) "training-gimmie") + (((game-task citadel-buzzer)) "citadel-buzzer") + (((game-task lavatube-buzzer)) "lavatube-buzzer") + (((game-task lavatube-end)) "lavatube-end") + (((game-task ogre-buzzer)) "ogre-buzzer") + (((game-task ogre-end)) "ogre-end") + (((game-task ogre-boss)) "ogre-boss") + (((game-task cave-buzzer)) "cave-buzzer") + (((game-task cave-platforms)) "cave-platforms") + (((game-task cave-spider-tunnel)) "cave-spider-tunnel") + (((game-task cave-swing-poles)) "cave-swing-poles") + (((game-task cave-robot-climb)) "cave-robot-climb") + (((game-task cave-dark-climb)) "cave-dark-climb") + (((game-task cave-dark-crystals)) "cave-dark-crystals") + (((game-task cave-gnawers)) "cave-gnawers") + (((game-task village3-buzzer)) "village3-buzzer") + (((game-task village2-buzzer)) "village2-buzzer") + (((game-task village1-buzzer)) "village1-buzzer") + (((game-task village3-extra1)) "village3-extra1") + (((game-task citadel-sage-yellow)) "citadel-sage-yellow") + (((game-task citadel-sage-red)) "citadel-sage-red") + (((game-task citadel-sage-blue)) "citadel-sage-blue") + (((game-task citadel-sage-green)) "citadel-sage-green") + (((game-task firecanyon-end)) "firecanyon-end") + (((game-task firecanyon-buzzer)) "firecanyon-buzzer") + (((game-task snow-cage)) "snow-cage") + (((game-task snow-bumpers)) "snow-bumpers") + (((game-task snow-buzzer)) "snow-buzzer") + (((game-task snow-bunnies)) "snow-bunnies") + (((game-task snow-ball)) "snow-ball") + (((game-task snow-fort)) "snow-fort") + (((game-task snow-ram)) "snow-ram") + (((game-task snow-eggtop)) "snow-eggtop") + (((game-task rolling-ring-chase-2)) "rolling-ring-chase-2") + (((game-task rolling-ring-chase-1)) "rolling-ring-chase-1") + (((game-task rolling-buzzer)) "rolling-buzzer") + (((game-task rolling-lake)) "rolling-lake") + (((game-task rolling-plants)) "rolling-plants") + (((game-task rolling-moles)) "rolling-moles") + (((game-task rolling-robbers)) "rolling-robbers") + (((game-task rolling-race)) "rolling-race") + (((game-task sunken-spinning-room)) "sunken-spinning-room") + (((game-task sunken-top-of-helix)) "sunken-top-of-helix") + (((game-task sunken-buzzer)) "sunken-buzzer") + (((game-task sunken-sharks)) "sunken-sharks") + (((game-task sunken-room)) "sunken-room") + (((game-task sunken-slide)) "sunken-slide") + (((game-task sunken-pipe)) "sunken-pipe") + (((game-task sunken-platforms)) "sunken-platforms") + (((game-task swamp-buzzer)) "swamp-buzzer") + (((game-task swamp-tether-4)) "swamp-tether-4") + (((game-task swamp-tether-3)) "swamp-tether-3") + (((game-task swamp-tether-2)) "swamp-tether-2") + (((game-task swamp-tether-1)) "swamp-tether-1") + (((game-task swamp-battle)) "swamp-battle") + (((game-task swamp-flutflut)) "swamp-flutflut") + (((game-task swamp-billy)) "swamp-billy") + (((game-task village2-oracle-money2)) "village2-oracle-money2") + (((game-task village2-oracle-money1)) "village2-oracle-money1") + (((game-task village2-warrior-money)) "village2-warrior-money") + (((game-task village2-geologist-money)) "village2-geologist-money") + (((game-task village2-gambler-money)) "village2-gambler-money") + (((game-task misty-eco-challenge)) "misty-eco-challenge") + (((game-task misty-bike-jump)) "misty-bike-jump") + (((game-task misty-buzzer)) "misty-buzzer") + (((game-task misty-bike)) "misty-bike") + (((game-task misty-cannon)) "misty-cannon") + (((game-task misty-warehouse)) "misty-warehouse") + (((game-task misty-boat)) "misty-boat") + (((game-task misty-muse)) "misty-muse") + (((game-task beach-sentinel)) "beach-sentinel") + (((game-task beach-gimmie)) "beach-gimmie") + (((game-task beach-buzzer)) "beach-buzzer") + (((game-task beach-cannon)) "beach-cannon") + (((game-task beach-seagull)) "beach-seagull") + (((game-task beach-flutflut)) "beach-flutflut") + (((game-task beach-pelican)) "beach-pelican") + (((game-task beach-ecorocks)) "beach-ecorocks") + (((game-task village1-oracle-money2)) "village1-oracle-money2") + (((game-task village1-oracle-money1)) "village1-oracle-money1") + (((game-task village1-uncle-money)) "village1-uncle-money") + (((game-task village1-mayor-money)) "village1-mayor-money") + (((game-task village1-yakow)) "village1-yakow") + (((game-task jungle-temple-door)) "jungle-temple-door") + (((game-task jungle-canyon-end)) "jungle-canyon-end") + (((game-task jungle-buzzer)) "jungle-buzzer") + (((game-task jungle-plant)) "jungle-plant") + (((game-task jungle-fishgame)) "jungle-fishgame") + (((game-task jungle-tower)) "jungle-tower") + (((game-task jungle-lurkerm)) "jungle-lurkerm") + (((game-task jungle-eggtop)) "jungle-eggtop") + (((game-task complete)) "complete") + (((game-task none)) "none") + (else "*unknown*") ) ) @@ -1103,7 +865,7 @@ (let ((v1-15 (new 'global 'entity-perm-array 116))) (set! (-> gp-0 task-perm-list) v1-15) (dotimes (a0-24 (-> v1-15 length)) - (set! (-> v1-15 data a0-24 task) (the-as uint a0-24)) + (set! (-> v1-15 data a0-24 task) (the-as game-task a0-24)) ) (set! (-> v1-15 data 1 status) diff --git a/goal_src/engine/game/generic-obs-h.gc b/goal_src/engine/game/generic-obs-h.gc index f22323a187..7fb0185a53 100644 --- a/goal_src/engine/game/generic-obs-h.gc +++ b/goal_src/engine/game/generic-obs-h.gc @@ -10,9 +10,9 @@ ((new-trans-hook function :offset-assert 176) (cur-trans-hook function :offset-assert 180) (cur-event-hook function :offset-assert 184) - (new-joint-anim basic :offset-assert 188) + (new-joint-anim art-joint-anim :offset-assert 188) (new-joint-anim-blend uint64 :offset-assert 192) - (anim-mode basic :offset-assert 200) + (anim-mode symbol :offset-assert 200) (cur-grab-handle uint64 :offset-assert 208) (cur-target-handle uint64 :offset-assert 216) (old-grab-pos vector :inline :offset-assert 224) diff --git a/goal_src/engine/game/settings.gc b/goal_src/engine/game/settings.gc index 62cba6ac3c..23bef0fc05 100644 --- a/goal_src/engine/game/settings.gc +++ b/goal_src/engine/game/settings.gc @@ -5,7 +5,7 @@ ;; name in dgo: settings ;; dgos: GAME, ENGINE -;; definition for method 9 of type setting-data + (defmethod handle-pending-updates setting-data ((obj setting-data) (arg0 engine)) "this goes through the list of pending setting changes in the engine/connection list and updates the setting-data" @@ -29,28 +29,13 @@ (('process-mask) (case (-> conn param1) (('set) - (set! - (-> obj process-mask) - (logior - (-> obj process-mask) - (the-as uint (the-as int (-> conn param3))) - ) - ) + (logior! (-> obj process-mask) (the-as process-mask (-> conn param3))) ) (('clear) - (set! - (-> obj process-mask) - (logand - (-> obj process-mask) - (the-as uint (the-as uint (lognot (the-as uint (-> conn param3))))) - ) - ) + (logclear! (-> obj process-mask) (the-as process-mask (-> conn param3))) ) (('abs) - (set! - (-> obj process-mask) - (the-as process-mask (the-as int (-> conn param3))) - ) + (set! (-> obj process-mask) (the-as process-mask (-> conn param3))) ) ) ) @@ -211,16 +196,10 @@ (('common-page) (case (-> conn param1) (('set) - (set! (-> obj common-page) - (logior (-> obj common-page) (the-as int (-> conn param3))) - ) + (logior! (-> obj common-page) (the-as int (-> conn param3))) ) (('clear) - (set! (-> obj common-page) - (logand (-> obj common-page) - (the-as int (the-as uint (lognot (the-as uint (-> conn param3))))) - ) - ) + (logclear! (-> obj common-page) (the-as int (-> conn param3))) ) ) ) @@ -232,35 +211,13 @@ obj ) -;; definition for method 9 of type setting-control -;; INFO: Return type mismatch int vs none. -(defmethod - push-setting! - setting-control - ((obj setting-control) - (arg0 process) - (arg1 (function object object object object object)) - (arg2 object) - (arg3 object) - (arg4 object) - ) +(defmethod push-setting! setting-control ((obj setting-control) (arg0 process) (arg1 (function object object object object object)) (arg2 object) (arg3 object) (arg4 object)) (add-connection (-> obj engine) arg0 arg1 arg2 arg3 arg4) 0 (none) ) -;; definition for method 10 of type setting-control -;; INFO: Return type mismatch int vs none. -(defmethod - set-setting! - setting-control - ((obj setting-control) - (arg0 process) - (arg1 symbol) - (arg2 symbol) - (arg3 float) - (arg4 int) - ) +(defmethod set-setting! setting-control ((obj setting-control) (arg0 process) (arg1 symbol) (arg2 symbol) (arg3 float) (arg4 int)) (clear-pending-settings-from-process obj arg0 arg1) (add-connection (-> obj engine) @@ -274,12 +231,7 @@ (none) ) -;; definition for method 11 of type setting-control -;; INFO: Return type mismatch int vs none. -(defmethod - clear-pending-settings-from-process - setting-control - ((obj setting-control) (arg0 process) (arg1 symbol)) +(defmethod clear-pending-settings-from-process setting-control ((obj setting-control) (arg0 process) (arg1 symbol)) (when arg0 (let ((s5-0 (-> obj engine)) (s4-0 (-> arg0 connection-list next1)) @@ -303,7 +255,7 @@ (none) ) -;; definition for method 12 of type setting-control + (defmethod copy-settings-from-target! setting-control ((obj setting-control)) (let ((gp-0 (-> obj current))) (let ((s5-0 (-> obj target))) @@ -338,54 +290,26 @@ ) ) -;; definition for method 13 of type setting-control + (defmethod update-per-frame-settings! setting-control ((obj setting-control)) (copy-settings-from-target! obj) (let ((gp-0 (-> obj current))) (let ((s5-1 (-> obj target))) (when *sound-player-enable* (when (!= (-> gp-0 sfx-volume) (-> s5-1 sfx-volume)) - (set! - (-> gp-0 sfx-volume) - (seek - (-> gp-0 sfx-volume) - (-> s5-1 sfx-volume) - (* 100.0 (-> *display* seconds-per-frame)) - ) - ) + (seek! (-> gp-0 sfx-volume) (-> s5-1 sfx-volume) (* 100.0 (-> *display* seconds-per-frame))) (sound-set-volume (the-as uint 1) (-> gp-0 sfx-volume)) ) (when (!= (-> gp-0 music-volume) (-> s5-1 music-volume)) - (set! - (-> gp-0 music-volume) - (seek - (-> gp-0 music-volume) - (-> s5-1 music-volume) - (* 100.0 (-> *display* seconds-per-frame)) - ) - ) + (seek! (-> gp-0 music-volume) (-> s5-1 music-volume) (* 100.0 (-> *display* seconds-per-frame))) (sound-set-volume (the-as uint 2) (-> gp-0 music-volume)) ) (when (!= (-> gp-0 dialog-volume) (-> s5-1 dialog-volume)) - (set! - (-> gp-0 dialog-volume) - (seek - (-> gp-0 dialog-volume) - (-> s5-1 dialog-volume) - (* 100.0 (-> *display* seconds-per-frame)) - ) - ) + (seek! (-> gp-0 dialog-volume) (-> s5-1 dialog-volume) (* 100.0 (-> *display* seconds-per-frame))) (sound-set-volume (the-as uint 4) (-> gp-0 dialog-volume)) ) (when (!= (-> gp-0 ambient-volume) (-> s5-1 ambient-volume)) - (set! - (-> gp-0 ambient-volume) - (seek - (-> gp-0 ambient-volume) - (-> s5-1 ambient-volume) - (* 100.0 (-> *display* seconds-per-frame)) - ) - ) + (seek! (-> gp-0 ambient-volume) (-> s5-1 ambient-volume) (* 100.0 (-> *display* seconds-per-frame))) (sound-set-volume (the-as uint 16) (-> gp-0 ambient-volume)) ) ) @@ -393,16 +317,13 @@ (set! (-> gp-0 language) (-> s5-1 language)) (set-language (-> gp-0 language)) ) - (when - (and - (!= (-> s5-1 music) (-> gp-0 music)) - (and - (< 0.0 (-> *setting-control* current music-volume)) - (zero? (rpc-busy? 1)) - *sound-bank-1* - *sound-bank-2* - ) - ) + (when (and (!= (-> s5-1 music) (-> gp-0 music)) + (and (< 0.0 (-> *setting-control* current music-volume)) + (zero? (rpc-busy? 1)) + *sound-bank-1* + *sound-bank-2* + ) + ) (cond ((-> s5-1 music) (format 0 "Load music ~A~%" (-> s5-1 music)) @@ -415,13 +336,7 @@ ) (set! (-> gp-0 music) (-> s5-1 music)) ) - (set! - (-> s5-1 sound-flava) - (the-as - uint - (flava-lookup (-> gp-0 music) (the-as int (-> s5-1 sound-flava))) - ) - ) + (set! (-> s5-1 sound-flava) (the-as uint (flava-lookup (-> gp-0 music) (the-as int (-> s5-1 sound-flava))))) (set! (-> gp-0 sound-flava) (-> s5-1 sound-flava)) (if *sound-player-enable* (sound-set-flava (-> gp-0 sound-flava)) @@ -449,14 +364,7 @@ (set! (-> gp-0 bg-r) (-> s5-1 bg-r)) (set! (-> gp-0 bg-g) (-> s5-1 bg-g)) (set! (-> gp-0 bg-b) (-> s5-1 bg-b)) - (set! - (-> gp-0 bg-a) - (seek - (-> gp-0 bg-a) - (-> s5-1 bg-a) - (* (-> s5-1 bg-a-speed) (-> *display* seconds-per-frame)) - ) - ) + (seek! (-> gp-0 bg-a) (-> s5-1 bg-a) (* (-> s5-1 bg-a-speed) (-> *display* seconds-per-frame))) ) (let ((v1-60 (-> *display* frames (-> *display* on-screen) display)) (f0-39 (-> gp-0 bg-a)) @@ -488,7 +396,7 @@ ) ) -;; failed to figure out what this is: + (when (zero? *setting-control*) (set! *setting-control* (new 'global 'setting-control 32)) (let ((gp-0 (-> *setting-control* default)) @@ -498,38 +406,14 @@ (set! (-> gp-0 ocean-off) #f) (set! (-> gp-0 allow-look-around) #t) (set! (-> gp-0 border-mode) #f) - (set! - (-> gp-0 sfx-volume) - (the float (* 5 (the int (+ 0.5 (* 15.0 f0-2))))) - ) - (set! - (-> gp-0 music-volume) - (the float (* 5 (the int (+ 0.5 (* 13.0 f0-2))))) - ) - (set! - (-> gp-0 dialog-volume) - (the float (* 5 (the int (+ 0.5 (* 20.0 f0-2))))) - ) - (set! - (-> gp-0 ambient-volume) - (the float (* 5 (the int (+ 0.5 (* 15.0 f0-2))))) - ) - (set! - (-> gp-0 sfx-volume-movie) - (the float (* 5 (the int (+ 0.5 (* 11.0 f0-2))))) - ) - (set! - (-> gp-0 music-volume-movie) - (the float (* 5 (the int (+ 0.5 (* 13.0 f0-2))))) - ) - (set! - (-> gp-0 ambient-volume-movie) - (the float (* 5 (the int (+ 0.5 (* 11.0 f0-2))))) - ) - (set! - (-> gp-0 dialog-volume-hint) - (the float (* 5 (the int (+ 0.5 (* 16.0 f0-2))))) - ) + (set! (-> gp-0 sfx-volume) (the float (* 5 (the int (+ 0.5 (* 15.0 f0-2)))))) + (set! (-> gp-0 music-volume) (the float (* 5 (the int (+ 0.5 (* 13.0 f0-2)))))) + (set! (-> gp-0 dialog-volume) (the float (* 5 (the int (+ 0.5 (* 20.0 f0-2)))))) + (set! (-> gp-0 ambient-volume) (the float (* 5 (the int (+ 0.5 (* 15.0 f0-2)))))) + (set! (-> gp-0 sfx-volume-movie) (the float (* 5 (the int (+ 0.5 (* 11.0 f0-2)))))) + (set! (-> gp-0 music-volume-movie) (the float (* 5 (the int (+ 0.5 (* 13.0 f0-2)))))) + (set! (-> gp-0 ambient-volume-movie) (the float (* 5 (the int (+ 0.5 (* 11.0 f0-2)))))) + (set! (-> gp-0 dialog-volume-hint) (the float (* 5 (the int (+ 0.5 (* 16.0 f0-2)))))) ) (set! (-> gp-0 language) (the-as int (scf-get-language))) (set! (-> gp-0 process-mask) (process-mask execute sleep)) diff --git a/goal_src/engine/game/task/task-control-h.gc b/goal_src/engine/game/task/task-control-h.gc index c1385e47e5..0400111719 100644 --- a/goal_src/engine/game/task/task-control-h.gc +++ b/goal_src/engine/game/task/task-control-h.gc @@ -85,7 +85,6 @@ ) ) -;; definition of type ambient-control (deftype ambient-control (structure) ((last-ambient-time uint64 :offset-assert 0) (last-ambient basic :offset-assert 8) @@ -95,18 +94,17 @@ :size-assert #x10 :flag-assert #xc00000010 (:methods - (dummy-9 () none 9) + (dummy-9 (_type_ vector int float process-drawable) none 9) (dummy-10 () none 10) (dummy-11 () none 11) ) ) -;; definition of type process-taskable (deftype process-taskable (process-drawable) - ((tasks basic :offset-assert 176) + ((tasks task-control :offset-assert 176) (query gui-query :inline :offset-assert 180) (old-target-pos transformq :inline :offset-assert 208) - (cell-for-task uint8 :offset-assert 256) + (cell-for-task game-task :offset-assert 256) (cell-x uint64 :offset-assert 264) (cam-joint-index int32 :offset-assert 272) (skippable basic :offset-assert 276) @@ -134,39 +132,39 @@ :size-assert #x17c :flag-assert #x350110017c (:methods - (dummy-20 () none 20) - (dummy-21 () none 21) - (dummy-22 () none 22) - (dummy-23 () none 23) - (dummy-24 () none 24) - (dummy-25 () none 25) - (dummy-26 () none 26) - (dummy-27 () none 27) - (dummy-28 () none 28) - (dummy-29 () none 29) - (dummy-30 () none 30) - (dummy-31 () none 31) - (dummy-32 () none 32) - (dummy-33 () none 33) - (dummy-34 () none 34) - (dummy-35 () none 35) - (dummy-36 () none 36) - (dummy-37 () none 37) - (dummy-38 () none 38) - (dummy-39 () none 39) - (dummy-40 () none 40) - (dummy-41 () none 41) - (dummy-42 () none 42) - (dummy-43 () none 43) - (dummy-44 () none 44) - (dummy-45 () none 45) - (dummy-46 () none 46) - (dummy-47 () none 47) - (dummy-48 () none 48) - (dummy-49 () none 49) - (dummy-50 () none 50) - (dummy-51 () none 51) - (dummy-52 () none 52) + (dummy-20 (_type_) none 20) + (dummy-21 (_type_) none 21) + (dummy-22 (_type_) none 22) + (dummy-23 (_type_) none 23) + (dummy-24 (_type_) none 24) + (dummy-25 (_type_) none 25) + (dummy-26 (_type_) none 26) + (dummy-27 (_type_) none 27) + (dummy-28 (_type_) none 28) + (dummy-29 (_type_) none 29) + (dummy-30 (_type_) none 30) + (dummy-31 (_type_) none 31) + (dummy-32 (_type_ symbol) spool-anim 32) + (dummy-33 (_type_) none 33) + (dummy-34 (_type_) none 34) + (dummy-35 (_type_) none 35) + (dummy-36 (_type_) none 36) + (dummy-37 (_type_) none 37) + (dummy-38 (_type_) none 38) + (dummy-39 (_type_) none 39) + (dummy-40 (_type_ object skeleton-group int int vector int) none 40) + (dummy-41 (_type_) none 41) + (dummy-42 (_type_) none 42) + (dummy-43 (_type_) none 43) + (dummy-44 (_type_) none 44) + (dummy-45 (_type_) none 45) + (dummy-46 (_type_) none 46) + (dummy-47 (_type_) none 47) + (dummy-48 (_type_) none 48) + (dummy-49 (_type_) none 49) + (dummy-50 (_type_) none 50) + (dummy-51 (_type_) none 51) + (dummy-52 (_type_) none 52) ) ) diff --git a/goal_src/engine/game/task/task-control.gc b/goal_src/engine/game/task/task-control.gc index ff395b722a..078b793596 100644 --- a/goal_src/engine/game/task/task-control.gc +++ b/goal_src/engine/game/task/task-control.gc @@ -1,39 +1,22 @@ ;;-*-Lisp-*- (in-package goal) -;; definition (debug) for function task-status->string +;; name: task-control.gc +;; name in dgo: task-control +;; dgos: GAME, ENGINE + (defun-debug task-status->string ((arg0 task-status)) - (let ((v1-0 arg0)) - (cond - ((= v1-0 7) - "need-resolution" - ) - ((= v1-0 6) - "need-reward-speech" - ) - ((= v1-0 5) - "need-reminder" - ) - ((= v1-0 4) - "need-reminder-a" - ) - ((= v1-0 3) - "need-introduction" - ) - ((= v1-0 2) - "need-hint" - ) - ((= v1-0 1) - "unknown" - ) - ((zero? v1-0) - "invalid" - ) - (else - "*unknown*" - ) + (case arg0 + (((task-status need-resolution)) "need-resolution") + (((task-status need-reward-speech)) "need-reward-speech") + (((task-status need-reminder)) "need-reminder") + (((task-status need-reminder-a)) "need-reminder-a") + (((task-status need-introduction)) "need-introduction") + (((task-status need-hint)) "need-hint") + (((task-status unknown)) "unknown") + (((task-status invalid)) "invalid") + (else "*unknown*") ) - ) ) (defmethod get-game-task task-cstage ((obj task-cstage)) @@ -48,41 +31,43 @@ (defmethod closed? task-cstage ((obj task-cstage)) "Is the closed flag set?" - (nonzero? (logand (-> obj flags) (task-flags closed))) + (declare (inline)) + + (logtest? (-> obj flags) (task-flags closed)) ) (defmethod closed-by-default? task-cstage ((obj task-cstage)) "Is the closed-by-default flag set?" - (nonzero? (logand (-> obj flags) (task-flags closed-by-default))) + (declare (inline)) + + (logtest? (-> obj flags) (task-flags closed-by-default)) ) (defmethod task-available? task-cstage ((obj task-cstage) (arg0 task-control)) "Is this task available to be the current task?" - (let ((a0-1 obj)) - (cond - ((nonzero? (logand (-> a0-1 flags) (task-flags closed))) - ;; closed flag is set, we're already closed. - #f - ) - ((>= (the-as int (-> (get-entity-task-perm *game-info* (-> obj game-task)) user-uint8 0)) - (the-as int (-> obj status)) - ) - ;; the permanent entity for this task has stored that we have progresssed past - ;; our status. Remember that we are closed, and return #f. - (set! (-> obj flags) (logior (-> obj flags) (task-flags closed))) - #f - ) - ((task-complete? *game-info* (-> obj game-task)) - ;; the game-info thinks that we have completed this task already. - ;; remember we are closed and return #f - (set! (-> obj flags) (logior (-> obj flags) (task-flags closed))) - #f - ) - (else - ;; we aren't closed. Check the condition. - ((-> obj condition) arg0) - ) - ) + (cond + ((closed? obj) + ;; we're already closed. + #f + ) + ((>= (the-as int (-> (get-entity-task-perm *game-info* (-> obj game-task)) user-uint8 0)) + (the-as int (-> obj status)) + ) + ;; the permanent entity for this task has stored that we have progresssed past + ;; our status. Remember that we are closed, and return #f. + (logior! (-> obj flags) (task-flags closed)) + #f + ) + ((task-complete? *game-info* (-> obj game-task)) + ;; the game-info thinks that we have completed this task already. + ;; remember we are closed and return #f + (logior! (-> obj flags) (task-flags closed)) + #f + ) + (else + ;; we aren't closed. Check the condition. + ((-> obj condition) arg0) + ) ) ) @@ -94,16 +79,14 @@ ) ;; flag as closed - (set! (-> obj flags) (logior (-> obj flags) (task-flags closed))) + (logior! (-> obj flags) (task-flags closed)) ;; do we have an entity to update? - (when (nonzero? (logand (-> obj flags) (task-flags has-entity))) + (when (logtest? (-> obj flags) (task-flags has-entity)) ;; look up the permanent storage for the entity associated with our task (let ((v1-9 (get-entity-task-perm *game-info* (-> obj game-task)))) ;; we set a bit to indicate that we are storing a non-default status - (set! (-> v1-9 status) - (logior (-> v1-9 status) (entity-perm-status user-set-from-cstage)) - ) + (logior! (-> v1-9 status) (entity-perm-status user-set-from-cstage)) ;; and store the actual status (only increment) (if (< (-> v1-9 user-uint8 0) (the-as uint (-> obj status))) (set! (-> v1-9 user-int8 0) (the-as int (-> obj status))) @@ -115,7 +98,7 @@ (defmethod open-task! task-cstage ((obj task-cstage)) "Clear the closed flag." - (set! (-> obj flags) (logand (lognot (task-flags closed)) (-> obj flags))) + (logclear! (-> obj flags) (task-flags closed)) 0 ) @@ -143,7 +126,6 @@ ;; look up the current cstage's task (the-as int (-> obj stage (-> obj current-stage) game-task)) ) - ) ) @@ -183,7 +165,6 @@ (none) ) -;; definition for method 12 of type task-control (defmethod close-status! task-control ((obj task-control) (arg0 task-status)) "Close the cstage that: - is associated with the task for the current cstage @@ -234,8 +215,9 @@ 0 ) -(defmethod reset! task-control ((obj task-control) (arg0 symbol) (arg1 symbol)) - "Reset a task control. arg1 to warn on null, arg1 'game for a game reset" +(defmethod reset! task-control ((obj task-control) (reset-mode symbol) (arg1 symbol)) + "Reset a task control. arg1 to warn on null, reset-mode 'game for a game reset" + (when (= obj *null-task-control*) (if arg1 (format 0 "ERROR: reset! received self of *null-task-control*~%~%") @@ -244,24 +226,15 @@ ) (dotimes (s4-0 (-> obj stage length)) ;; do we open the task? - (if (or (= arg0 'game) ;; if we're resetting the whole game, yes - (let ((a0-4 (-> obj stage s4-0))) - (not (nonzero? (logand - (-> a0-4 flags) - (task-flags closed-by-default) ;; todo this flag? - ) - ) - ) - ) + (if (or (= reset-mode 'game) ;; open every task on game reset + (not (closed-by-default? (-> obj stage s4-0))) ;; todo this flag? ) (open-task! (-> obj stage s4-0)) ) ;; call close-task! to send closed stuff to entities - (let ((a0-10 (-> obj stage s4-0))) - (if (nonzero? (logand (-> a0-10 flags) (task-flags closed))) - (close-task! (-> obj stage s4-0)) - ) + (if (closed? (-> obj stage s4-0)) + (close-task! (-> obj stage s4-0)) ) ) (the-as int #f) @@ -270,6 +243,7 @@ (defmethod closed? task-control ((obj task-control) (arg0 game-task) (arg1 task-status)) "Is the given task/status cstage closed?" + (when (= obj *null-task-control*) (format 0 "ERROR: closed? received self of *null-task-control*~%~%") (return #f) @@ -279,10 +253,7 @@ (when (and (= arg0 (-> obj stage v1-3 game-task)) (= arg1 (-> obj stage v1-3 status)) ) - (let ((a0-3 (-> obj stage v1-3))) - ;; is the closed set? - (return (nonzero? (logand (-> a0-3 flags) (task-flags closed)))) - ) + (return (closed? (-> obj stage v1-3))) ) ) (format 0 "ERROR: closed? received non-existent task-cstage(~S ~S)--returning #t.~%" @@ -325,9 +296,7 @@ ) (let ((v1-4 (get-entity-task-perm *game-info* (-> obj stage 0 game-task)))) ;; remember that we have a change. - (set! (-> v1-4 status) - (logior (-> v1-4 status) (entity-perm-status user-set-from-cstage)) - ) + (logior! (-> v1-4 status) (entity-perm-status user-set-from-cstage)) (set! (-> v1-4 user-int8 (+ arg1 1)) arg0) ) 0 @@ -338,7 +307,8 @@ ;; Task Control Definitions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; definition for symbol *assistant-tasks*, type task-control + +;; tasks for assistant (note: keira) (define *assistant-tasks* (new 'static 'task-control :current-stage -1 @@ -348,48 +318,25 @@ (new 'static 'task-cstage :game-task (game-task jungle-eggtop) :status (task-status need-hint) - :flags - (task-flags has-entity closed-by-default) + :flags (task-flags has-entity closed-by-default) :condition (lambda ((arg0 task-control)) #t) ) (new 'static 'task-cstage :game-task (game-task jungle-eggtop) :status (task-status need-introduction) - :flags - (task-flags has-entity closed-by-default) + :flags (task-flags has-entity closed-by-default) :condition (lambda ((arg0 task-control)) #t) ) (new 'static 'task-cstage :game-task (game-task misty-bike) :status (task-status need-hint) - :flags - (task-flags has-entity closed-by-default) + :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control)) - (with-pp - (or - (closed? arg0 (game-task jungle-eggtop) (task-status need-reminder)) - (and - (closed? - arg0 - (game-task jungle-eggtop) - (task-status need-introduction) - ) - (let ((a1-2 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-2 from) pp) - (set! (-> a1-2 num-params) 2) - (set! (-> a1-2 message) 'query) - (set! (-> a1-2 param 0) (the-as uint 'pickup)) - (set! (-> a1-2 param 1) (the-as uint 6)) - (>= - (the int (send-event-function *target* a1-2)) - (+ (get-reminder arg0 1) 3) - ) - ) - ) - ) - ) + (lambda ((arg0 task-control)) + (or (closed? arg0 (game-task jungle-eggtop) (task-status need-reminder)) + (and (closed? arg0 (game-task jungle-eggtop) (task-status need-introduction)) + (>= (the int (send-event *target* 'query 'pickup 6)) (+ (get-reminder arg0 1) 3))) + ) ) ) (new 'static 'task-cstage @@ -398,31 +345,11 @@ :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control)) - (with-pp - (or - (closed? arg0 (game-task jungle-eggtop) (task-status need-reminder)) - (and - (closed? - arg0 - (game-task jungle-eggtop) - (task-status need-introduction) - ) - (let ((a1-2 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-2 from) pp) - (set! (-> a1-2 num-params) 2) - (set! (-> a1-2 message) 'query) - (set! (-> a1-2 param 0) (the-as uint 'pickup)) - (set! (-> a1-2 param 1) (the-as uint 6)) - (>= - (the int (send-event-function *target* a1-2)) - (+ (get-reminder arg0 1) 3) - ) - ) - ) - ) - ) + (lambda ((arg0 task-control)) + (or (closed? arg0 (game-task jungle-eggtop) (task-status need-reminder)) + (and (closed? arg0 (game-task jungle-eggtop) (task-status need-introduction)) + (>= (the int (send-event *target* 'query 'pickup 6)) (+ (get-reminder arg0 1) 3))) + ) ) ) (new 'static 'task-cstage @@ -452,12 +379,8 @@ :status (task-status unknown) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) - (task-closed? - (game-task village4-button) - (task-status need-reward-speech) - ) + (lambda ((arg0 task-control)) + (task-closed? (game-task village4-button) (task-status need-reward-speech)) ) ) (new 'static 'task-cstage @@ -481,9 +404,8 @@ ) ) -;; definition for symbol *assistant-village2-tasks*, type task-control -(define - *assistant-village2-tasks* +;; tasks for assistant, village2 variant +(define *assistant-village2-tasks* (new 'static 'task-control :current-stage -1 :stage @@ -522,18 +444,7 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) - (with-pp (let ((a1-0 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-0 from) pp) - (set! (-> a1-0 num-params) 2) - (set! (-> a1-0 message) 'query) - (set! (-> a1-0 param 0) (the-as uint 'pickup)) - (set! (-> a1-0 param 1) (the-as uint 6)) - (>= (the int (send-event-function *target* a1-0)) 45) - ) - ) - ) + (lambda ((arg0 task-control)) (>= (the int (send-event *target* 'query 'pickup 2)) 45)) ) (new 'static 'task-cstage :game-task (game-task sunken-room) @@ -3392,39 +3303,23 @@ (new 'static 'task-cstage :game-task (game-task village2-warrior-money) :status (task-status need-hint) - :flags - (task-flags has-entity closed-by-default) + :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control)) - (and - (not (task-closed? (game-task ogre-boss) (task-status need-reminder))) - (not - (task-closed? - (game-task village2-levitator) - (task-status need-reward-speech) - ) - ) - ) + (lambda ((arg0 task-control)) + (and (not (task-closed? (game-task ogre-boss) (task-status need-reminder))) + (not (task-closed? (game-task village2-levitator) (task-status need-reward-speech))) + ) ) ) (new 'static 'task-cstage :game-task (game-task village2-warrior-money) :status (task-status need-introduction) - :flags - (task-flags has-entity closed-by-default) + :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control)) - (and - (not (task-closed? (game-task ogre-boss) (task-status need-reminder))) - (not - (task-closed? - (game-task village2-levitator) - (task-status need-reward-speech) - ) - ) - ) + (lambda ((arg0 task-control)) + (and (not (task-closed? (game-task ogre-boss) (task-status need-reminder))) + (not (task-closed? (game-task village2-levitator) (task-status need-reward-speech))) + ) ) ) (new 'static 'task-cstage @@ -3432,31 +3327,8 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) - (with-pp - (the-as - symbol - (and *target* (let ((a1-0 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-0 from) pp) - (set! (-> a1-0 num-params) 2) - (set! (-> a1-0 message) 'query) - (set! (-> a1-0 param 0) (the-as uint 'pickup)) - (set! (-> a1-0 param 1) (the-as uint 5)) - (>= - ((the-as - (function process event-message-block float) - send-event-function - ) - *target* - a1-0 - ) - (-> *GAME-bank* money-task-inc) - ) - ) - ) - ) - ) + (lambda ((arg0 task-control)) + (>= (the-as float (send-event *target* 'query 'pickup 5)) (-> *GAME-bank* money-task-inc)) ) ) (new 'static 'task-cstage @@ -5234,17 +5106,8 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) - (with-pp (let ((a1-0 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-0 from) pp) - (set! (-> a1-0 num-params) 2) - (set! (-> a1-0 message) 'query) - (set! (-> a1-0 param 0) (the-as uint 'pickup)) - (set! (-> a1-0 param 1) (the-as uint 6)) - (>= (the int (send-event-function *target* a1-0)) 72) - ) - ) + (lambda ((arg0 task-control)) + (>= (the int (send-event *target* 'query 'pickup 6)) 72) ) ) (new 'static 'task-cstage @@ -5413,12 +5276,8 @@ :status (task-status unknown) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) - (task-closed? - (game-task village4-button) - (task-status need-reward-speech) - ) + (lambda ((arg0 task-control)) + (task-closed? (game-task village4-button) (task-status need-reward-speech)) ) ) (new 'static 'task-cstage @@ -5533,17 +5392,14 @@ 0 ) -;; definition for function task-closed? (defun task-closed? ((arg0 game-task) (arg1 task-status)) (closed? (get-task-control arg0) arg0 arg1) ) -;; definition for function task-exists? (defun task-exists? ((arg0 game-task) (arg1 task-status)) (exists? (get-task-control arg0) arg0 arg1) ) -;; definition for function task-known? (defun task-known? ((arg0 game-task)) "Is there a cstage with a non-unknown status?" (let ((v1-0 (get-task-status arg0))) @@ -5562,7 +5418,6 @@ ) ) -;; definition for function sages-kidnapped? (defun sages-kidnapped? () (task-closed? (game-task village4-button) (task-status need-reward-speech)) ) @@ -5593,7 +5448,6 @@ ) ) -;; failed to figure out what this is: (task-control-reset 'game) diff --git a/goal_src/engine/gfx/depth-cue-h.gc b/goal_src/engine/gfx/depth-cue-h.gc index 36c64fb063..925c8e5c89 100644 --- a/goal_src/engine/gfx/depth-cue-h.gc +++ b/goal_src/engine/gfx/depth-cue-h.gc @@ -5,7 +5,7 @@ ;; name in dgo: depth-cue-h ;; dgos: GAME, ENGINE -;; depth-cue-h + (deftype depth-cue-data (structure) ((data vector :inline :offset-assert 0) (sharpness float :offset 0) @@ -18,7 +18,6 @@ :flag-assert #x900000010 ) -;; depth-cue-h (deftype depth-cue-work (structure) ((texture-strip-tmpl dma-gif-packet :inline :offset-assert 0) (temp-strip-tmpl dma-gif-packet :inline :offset-assert 32) diff --git a/goal_src/engine/gfx/sky/sky-h.gc b/goal_src/engine/gfx/sky/sky-h.gc index 9c79180203..1d47b8503a 100644 --- a/goal_src/engine/gfx/sky/sky-h.gc +++ b/goal_src/engine/gfx/sky/sky-h.gc @@ -39,12 +39,12 @@ (r-sun float :offset 16) (r-halo float :offset 20) (r-aurora float :offset 24) - (c-sun-start uint32 :offset 32) - (c-sun-end uint32 :offset 48) - (c-halo-start uint32 :offset 36) - (c-halo-end uint32 :offset 52) - (c-aurora-start uint32 :offset 40) - (c-aurora-end uint32 :offset 56) + (c-sun-start rgba :offset 32) + (c-sun-end rgba :offset 48) + (c-halo-start rgba :offset 36) + (c-halo-end rgba :offset 52) + (c-aurora-start rgba :offset 40) + (c-aurora-end rgba :offset 56) ) :method-count-assert 9 :size-assert #x40 @@ -76,9 +76,7 @@ ) (deftype sky-upload-data (basic) - ( - ;;(data UNKNOWN 27 :offset-assert 16) - (circle sky-circle-data :inline :offset-assert 16) + ((circle sky-circle-data :inline :offset-assert 16) (sun sky-sun-data 2 :inline :offset-assert 288) (moon sky-moon-data :inline :offset-assert 416) (data uint128 27 :offset 16) @@ -106,12 +104,12 @@ ) (defmethod new sky-parms ((allocation symbol) (type-to-make type)) - (local-vars (v0-0 sky-parms)) - (set! v0-0 - (object-new allocation type-to-make (the-as int (-> type-to-make size))) - ) - (set! (-> v0-0 upload-data type) sky-upload-data) - v0-0 + "allocate a new sky-parms" + + (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> v0-0 upload-data type) sky-upload-data) + v0-0 + ) ) (define *sky-parms* (new 'global 'sky-parms)) diff --git a/goal_src/engine/gfx/sky/sky-utils.gc b/goal_src/engine/gfx/sky/sky-utils.gc index f00774db7f..cb4bc9c6ea 100644 --- a/goal_src/engine/gfx/sky/sky-utils.gc +++ b/goal_src/engine/gfx/sky/sky-utils.gc @@ -5,10 +5,7 @@ ;; name in dgo: sky-utils ;; dgos: GAME, ENGINE -;; definition for function sky-set-sun-radii -(defun - sky-set-sun-radii - ((arg0 sky-parms) (arg1 int) (arg2 float) (arg3 float) (arg4 float)) +(defun sky-set-sun-radii ((arg0 sky-parms) (arg1 int) (arg2 float) (arg3 float) (arg4 float)) (let ((v1-0 (logand arg1 1))) (set! (-> arg0 upload-data sun v1-0 r-sun) arg2) (set! (-> arg0 upload-data sun v1-0 r-halo) arg3) @@ -17,10 +14,7 @@ #f ) -;; definition for function sky-set-sun-colors -(defun - sky-set-sun-colors - ((arg0 sky-parms) (arg1 int) (arg2 uint) (arg3 uint) (arg4 uint) (arg5 uint)) +(defun sky-set-sun-colors ((arg0 sky-parms) (arg1 int) (arg2 rgba) (arg3 rgba) (arg4 rgba) (arg5 rgba)) (let ((v1-0 (logand arg1 1))) (set! (-> arg0 upload-data sun v1-0 c-sun-start) arg2) (set! (-> arg0 upload-data sun v1-0 c-sun-end) arg3) @@ -32,10 +26,7 @@ #f ) -;; definition for function sky-set-sun-colors-sun -(defun - sky-set-sun-colors-sun - ((arg0 sky-parms) (arg1 int) (arg2 uint) (arg3 uint)) +(defun sky-set-sun-colors-sun ((arg0 sky-parms) (arg1 int) (arg2 rgba) (arg3 rgba)) (let ((v1-0 (logand arg1 1))) (set! (-> arg0 upload-data sun v1-0 c-sun-start) arg2) (set! (-> arg0 upload-data sun v1-0 c-sun-end) arg3) @@ -43,10 +34,7 @@ #f ) -;; definition for function sky-set-sun-colors-halo -(defun - sky-set-sun-colors-halo - ((arg0 sky-parms) (arg1 int) (arg2 uint) (arg3 uint)) +(defun sky-set-sun-colors-halo ((arg0 sky-parms) (arg1 int) (arg2 rgba) (arg3 rgba)) (let ((v1-0 (logand arg1 1))) (set! (-> arg0 upload-data sun v1-0 c-halo-start) arg2) (set! (-> arg0 upload-data sun v1-0 c-halo-end) arg3) @@ -54,10 +42,7 @@ #f ) -;; definition for function sky-set-sun-colors-aurora -(defun - sky-set-sun-colors-aurora - ((arg0 sky-parms) (arg1 int) (arg2 uint) (arg3 uint)) +(defun sky-set-sun-colors-aurora ((arg0 sky-parms) (arg1 int) (arg2 rgba) (arg3 rgba)) (let ((v1-0 (logand arg1 1))) (set! (-> arg0 upload-data sun v1-0 c-aurora-start) arg2) (set! (-> arg0 upload-data sun v1-0 c-aurora-end) arg3) @@ -65,18 +50,7 @@ #f ) -;; definition for function sky-set-orbit -(defun - sky-set-orbit - ((arg0 sky-parms) - (arg1 int) - (arg2 float) - (arg3 float) - (arg4 float) - (arg5 float) - (arg6 float) - (arg7 float) - ) +(defun sky-set-orbit ((arg0 sky-parms) (arg1 int) (arg2 float) (arg3 float) (arg4 float) (arg5 float) (arg6 float) (arg7 float)) (set! (-> arg0 orbit arg1 high-noon) arg2) (set! (-> arg0 orbit arg1 tilt) (* 0.017453292 arg3)) (set! (-> arg0 orbit arg1 rise) (* 0.017453292 arg4)) diff --git a/goal_src/engine/level/level.gc b/goal_src/engine/level/level.gc index 4868cd9e7d..f40e870633 100644 --- a/goal_src/engine/level/level.gc +++ b/goal_src/engine/level/level.gc @@ -382,7 +382,7 @@ ) ) (('loading-bt) - ;; finished loading the background! + ;; finished loading the last object! (level-status-set! obj 'loading-done) (level-status-set! obj 'loaded) ) @@ -406,7 +406,7 @@ ;; something has finished loading! (cond ((not last-obj) - ;; not the last object, so it's some non-background file. start linking + ;; not the last object. start linking (cond ((dgo-load-link (the-as dgo-header a0-15) (-> obj heap) *print-login* #f) ;; linking finished (that was fast) @@ -421,7 +421,7 @@ ) ) (else - ;; the background is always the last object, so we're loading the background now + ;; we're loading the last object now, which has different rules (set! (-> obj heap top) (-> obj heap top-base)) (level-status-set! obj 'loading-bt) ) @@ -434,7 +434,7 @@ (level-update-after-load obj *login-state*) ) (('loading-bt) - ;; link the bt object + ;; link the last object (let ((a0-26 (align64 (-> obj heap current)))) (cond ((dgo-load-link (the-as dgo-header a0-26) (-> obj heap) *print-login* #t) @@ -452,7 +452,7 @@ ) (defmethod load-begin level ((obj level)) - "Start loading the level. Uses 2 megabyte heaps for loading each non-bt object." + "Start loading the level. Uses 2 megabyte heaps for loading each object." (set! loading-level (-> obj heap)) (set! (-> *level* loading-level) obj) @@ -575,7 +575,7 @@ (let ((s2-2 (-> loaded-level art-group art-group-array v1-39))) (dummy-9 s2-2) (if (dummy-12 s2-2) - (dummy-13 s2-2) + (link-art! s2-2) ) ) (1+! (-> level-login-state elts)) @@ -788,7 +788,7 @@ (dotimes (s5-0 (-> obj art-group art-group-array length)) (let ((s4-0 (-> obj art-group art-group-array s5-0))) (if (dummy-12 s4-0) - (dummy-14 s4-0) + (unlink-art! s4-0) ) ) ) @@ -1200,12 +1200,12 @@ 0 ) -(defun play ((use-vis symbol) (arg1 symbol)) +(defun play ((use-vis symbol) (init-game symbol)) "The entry point to the actual game! This allocates the level heaps, loads some data, sets some default parameters and sets the startup level." ;; temp - (format #t "(play ~A ~A) has been called!~%" use-vis arg1) - (format 0 "(play ~A ~A) has been called!~%" use-vis arg1) + (format #t "(play :use-vis ~A :init-game ~A) has been called!~%" use-vis init-game) + (format 0 "(play :use-vis ~A :init-game ~A) has been called!~%" use-vis init-game) ;;(kernel-shutdown) (let ((startup-level (case *kernel-boot-message* @@ -1260,8 +1260,8 @@ (load-dbg "Load complete. Level: ~A. Now starting display!~%" (-> *level* level0)) (on #t) (load-dbg "Display started: ~A~%" *dproc*) - (when arg1 - ;; (dummy-9 *game-info* 'game #f (the-as string #f)) TODO + (when init-game + (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)) ) 0 ) @@ -1307,87 +1307,55 @@ ) ) (when (and gp-0 (!= gp-0 *sound-bank-1*) (!= gp-0 *sound-bank-2*)) - (if (not *sound-bank-1*) - (return (begin - (format 0 "Load soundbank ~A~%" gp-0) - (sound-bank-load (string->sound-name (symbol->string gp-0))) - (set! *sound-bank-1* gp-0) - 0 - ) - ) + (when (not *sound-bank-1*) + (format 0 "Load soundbank ~A~%" gp-0) + (sound-bank-load (string->sound-name (symbol->string gp-0))) + (set! *sound-bank-1* gp-0) + (return 0) ) - (if (not *sound-bank-2*) - (return (begin - (format 0 "Load soundbank ~A~%" gp-0) - (sound-bank-load (string->sound-name (symbol->string gp-0))) - (set! *sound-bank-2* gp-0) - 0 - ) - ) + (when (not *sound-bank-2*) + (format 0 "Load soundbank ~A~%" gp-0) + (sound-bank-load (string->sound-name (symbol->string gp-0))) + (set! *sound-bank-2* gp-0) + (return 0) ) - (if (!= *sound-bank-1* s5-0) - (return (begin - (format 0 "Unload soundbank ~A~%" *sound-bank-1*) - (sound-bank-unload - (string->sound-name (symbol->string *sound-bank-1*)) - ) - (set! *sound-bank-1* #f) - 0 - ) - ) + (when (!= *sound-bank-1* s5-0) + (format 0 "Unload soundbank ~A~%" *sound-bank-1*) + (sound-bank-unload (string->sound-name (symbol->string *sound-bank-1*))) + (set! *sound-bank-1* #f) + (return 0) ) - (if (!= *sound-bank-2* s5-0) - (return (begin - (format 0 "Unload soundbank ~A~%" *sound-bank-2*) - (sound-bank-unload - (string->sound-name (symbol->string *sound-bank-2*)) - ) - (set! *sound-bank-2* #f) - 0 - ) - ) + (when (!= *sound-bank-2* s5-0) + (format 0 "Unload soundbank ~A~%" *sound-bank-2*) + (sound-bank-unload (string->sound-name (symbol->string *sound-bank-2*))) + (set! *sound-bank-2* #f) + (return 0) ) ) (when (and s5-0 (!= s5-0 *sound-bank-1*) (!= s5-0 *sound-bank-2*)) - (if (not *sound-bank-1*) - (return (begin - (format 0 "Load soundbank ~A~%" s5-0) - (sound-bank-load (string->sound-name (symbol->string s5-0))) - (set! *sound-bank-1* s5-0) - 0 - ) - ) + (when (not *sound-bank-1*) + (format 0 "Load soundbank ~A~%" s5-0) + (sound-bank-load (string->sound-name (symbol->string s5-0))) + (set! *sound-bank-1* s5-0) + (return 0) ) - (if (not *sound-bank-2*) - (return (begin - (format 0 "Load soundbank ~A~%" s5-0) - (sound-bank-load (string->sound-name (symbol->string s5-0))) - (set! *sound-bank-2* s5-0) - 0 - ) - ) + (when (not *sound-bank-2*) + (format 0 "Load soundbank ~A~%" s5-0) + (sound-bank-load (string->sound-name (symbol->string s5-0))) + (set! *sound-bank-2* s5-0) + (return 0) ) - (if (!= *sound-bank-1* gp-0) - (return (begin - (format 0 "Unload soundbank ~A~%" *sound-bank-1*) - (sound-bank-unload - (string->sound-name (symbol->string *sound-bank-1*)) - ) - (set! *sound-bank-1* #f) - 0 - ) - ) + (when (!= *sound-bank-1* gp-0) + (format 0 "Unload soundbank ~A~%" *sound-bank-1*) + (sound-bank-unload (string->sound-name (symbol->string *sound-bank-1*))) + (set! *sound-bank-1* #f) + (return 0) ) - (if (!= *sound-bank-2* gp-0) - (return (begin - (format 0 "Unload soundbank ~A~%" *sound-bank-2*) - (sound-bank-unload - (string->sound-name (symbol->string *sound-bank-2*)) - ) - (set! *sound-bank-2* #f) - 0 - ) - ) + (when (!= *sound-bank-2* gp-0) + (format 0 "Unload soundbank ~A~%" *sound-bank-2*) + (sound-bank-unload (string->sound-name (symbol->string *sound-bank-2*))) + (set! *sound-bank-2* #f) + (return 0) ) ) ) diff --git a/goal_src/engine/load/load-dgo.gc b/goal_src/engine/load/load-dgo.gc index 359218f635..5f6e73e1fd 100644 --- a/goal_src/engine/load/load-dgo.gc +++ b/goal_src/engine/load/load-dgo.gc @@ -183,16 +183,15 @@ struct DgoHeader { ;; STR PLAY ;;;;;;;;;;;;;;;;;;;;;;;;; -;; unknown. I think related to playing cutscene stuff? +;; play streamed audio for a STR -(defun str-play-async ((name string) (addr pointer)) +(defun str-play-async ((name string) (id sound-id)) "Queue a play cmd to do... something? Locks the queue, doesn't check other locks" (set! *que-str-lock* #t) (let ((cmd (the-as load-chunk-msg (add-element *play-str-rpc*)))) (charp<-string (-> cmd basename) name) - ;; might be an id? - (set! (-> cmd address) addr) + (set! (-> cmd address) (the-as pointer id)) ;; probably using a different enum here (set! (-> cmd result) (load-msg-result done)) ) diff --git a/goal_src/engine/load/loader-h.gc b/goal_src/engine/load/loader-h.gc index 9e68d1a849..7029ac3be0 100644 --- a/goal_src/engine/load/loader-h.gc +++ b/goal_src/engine/load/loader-h.gc @@ -8,6 +8,13 @@ ;; This is not well-understood yet, but it is definitely related to streaming animation loading, ;; and possibly art-group stuff. + +(defconstant SPOOL_PRIORITY_LOWEST 100000000.0) +(defconstant SPOOL_PRIORITY_RECALC -99.0) +(defconstant SPOOL_PRIORITY_HIGHEST -20.0) +(defconstant SPOOL_PRIORITY_HIGH -10.0) + + ;; This type didn't have an inspect method, so these field names are made up. (declare-type art-group basic) (deftype load-dir (basic) @@ -18,19 +25,20 @@ :flag-assert #xb00000010 (:methods (new (symbol type int basic) _type_ 0) - (dummy-9 () none 9) - (dummy-10 () none 10) + (dummy-9 (_type_ string symbol kheap int) art-group 9) + (dummy-10 (_type_ art-group) art-group 10) ) ) ;; specialization of load-dir where the data-array holds art-groups. -(declare-type art-group basic) (deftype load-dir-art-group (load-dir) ((art-group-array (array art-group) :offset 12) ) :flag-assert #xb00000010 (:methods (new (symbol type int basic) _type_ 0) + (dummy-9 (_type_ string symbol kheap int) art-group 9) + (dummy-10 (_type_ art-group) art-group 10) ) ) @@ -76,13 +84,13 @@ (heap kheap :inline :offset-assert 32) (pending-load-file string :offset-assert 48) (pending-load-file-part int32 :offset-assert 52) - (pending-load-file-owner uint64 :offset-assert 56) + (pending-load-file-owner handle :offset-assert 56) (pending-load-file-priority float :offset-assert 64) (load-file string :offset-assert 68) (load-file-part int32 :offset-assert 72) - (load-file-owner uint64 :offset-assert 80) + (load-file-owner handle :offset-assert 80) (load-file-priority float :offset-assert 88) - (buf uint32 :offset-assert 92) + (buf pointer :offset-assert 92) (len int32 :offset-assert 96) (art-group art-group :offset-assert 100) ) @@ -91,13 +99,13 @@ :flag-assert #x1000000068 (:methods (new (symbol type int) _type_ 0) - (dummy-9 (_type_ symbol int symbol float) none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) - (dummy-15 () none 15) + (want-file (_type_ string int handle float) int 9) + (update (_type_) int 10) + (inactive? (_type_) symbol 11) + (file-status (_type_ string int) symbol 12) + (link-file (_type_ art-group) art-group 13) + (unlink-file (_type_ art-group) int 14) + (unlock! (_type_) symbol 15) ) ) @@ -107,12 +115,12 @@ (set! (-> obj index) idx) (set! (-> obj load-file) #f) (set! (-> obj load-file-part) -1) - (set! (-> obj load-file-owner) (the-as uint #f)) - (set! (-> obj load-file-priority) 100000000.0) + (set! (-> obj load-file-owner) (the-as handle #f)) + (set! (-> obj load-file-priority) SPOOL_PRIORITY_LOWEST) (set! (-> obj pending-load-file) #f) (set! (-> obj pending-load-file-part) -1) - (set! (-> obj pending-load-file-owner) (the-as uint #f)) - (set! (-> obj pending-load-file-priority) 100000000.0) + (set! (-> obj pending-load-file-owner) (the-as handle #f)) + (set! (-> obj pending-load-file-priority) SPOOL_PRIORITY_LOWEST) (set! (-> obj art-group) #f) (set! (-> obj status) 'initialize) (set! (-> obj locked?) #f) @@ -123,11 +131,13 @@ (deftype spool-anim (basic) ((name string :offset 16) ;; why? - (index int32 :offset-assert 20) + (buf1 external-art-buffer :offset 16) ;; custom + (buf2 external-art-buffer :offset-assert 20) ;; custom (also what?) + (index int32 :offset 20) (parts int32 :offset-assert 24) (priority float :offset-assert 28) - (owner uint64 :offset-assert 32) - (command-list basic :offset-assert 40) + (owner handle :offset-assert 32) + (command-list pair :offset-assert 40) ) :pack-me :method-count-assert 9 @@ -137,11 +147,11 @@ (deftype external-art-control (basic) ((buffer external-art-buffer 2 :offset-assert 4) - (rec spool-anim 3 :inline) - (spool-lock uint64 :offset-assert 160) - (reserve-buffer basic :offset-assert 168) + (rec spool-anim 3 :inline :offset-assert 16) + (spool-lock handle :offset-assert 160) + (reserve-buffer external-art-buffer :offset-assert 168) (reserve-buffer-count int32 :offset-assert 172) - (active-stream basic :offset-assert 176) + (active-stream string :offset-assert 176) (preload-stream spool-anim :inline :offset-assert 184) (last-preload-stream spool-anim :inline :offset-assert 232) (end-pad uint32) @@ -151,17 +161,18 @@ :flag-assert #x1100000118 (:methods (new (symbol type) _type_ 0) - (dummy-9 (_type_ symbol) none 9) - (dummy-10 (_type_) none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) - (dummy-15 () none 15) - (dummy-16 () none 16) + (update (_type_ symbol) int 9) + (clear-rec (_type_) int 10) + (spool-push (_type_ string int process float) int 11) + (file-status (_type_ string int) symbol 12) + (reserve-alloc (_type_) kheap 13) + (reserve-free (_type_ kheap) int 14) + (none-reserved? (_type_) symbol 15) + (try-preload-stream (_type_ string int process float) int 16) ) ) + (defmethod new external-art-control ((allocation symbol) (type-to-make type)) (let ((obj (object-new allocation type-to-make (the-as int (-> type-to-make size))))) ;; allocate buffers. @@ -176,19 +187,25 @@ ;; set up recs (dotimes (rec-idx 3) (set! (-> obj rec rec-idx name) #f) - (set! (-> obj rec rec-idx priority) 100000000.0) - (set! (-> obj rec rec-idx owner) (the-as uint #f)) + (set! (-> obj rec rec-idx priority) SPOOL_PRIORITY_LOWEST) + (set! (-> obj rec rec-idx owner) (the-as handle #f)) ) ;; set up defaults. - (set! (-> obj spool-lock) (the-as uint #f)) + (set! (-> obj spool-lock) (the-as handle #f)) (set! (-> obj reserve-buffer) #f) (set! (-> obj active-stream) #f) (set! (-> obj preload-stream name) #f) - (set! (-> obj preload-stream priority) 100000000.0) - (set! (-> obj preload-stream owner) (the-as uint #f)) + (set! (-> obj preload-stream priority) SPOOL_PRIORITY_LOWEST) + (set! (-> obj preload-stream owner) (the-as handle #f)) (set! (-> obj last-preload-stream name) #f) - (set! (-> obj last-preload-stream priority) 100000000.0) - (set! (-> obj last-preload-stream owner) (the-as uint #f)) + (set! (-> obj last-preload-stream priority) SPOOL_PRIORITY_LOWEST) + (set! (-> obj last-preload-stream owner) (the-as handle #f)) obj ) ) + + +(define-extern *art-control* external-art-control) +(defun-extern art-group-load-check string kheap int art-group) + + diff --git a/goal_src/engine/load/loader.gc b/goal_src/engine/load/loader.gc index e142a6f024..7c5f223ebf 100644 --- a/goal_src/engine/load/loader.gc +++ b/goal_src/engine/load/loader.gc @@ -5,3 +5,1055 @@ ;; name in dgo: loader ;; dgos: GAME, ENGINE + +(defmethod inspect load-dir ((obj load-dir)) + (format #t "[~8x] ~A~%" obj (-> obj type)) + (format #t "~Tlevel: ~A~%" (-> obj unknown)) + (format #t "~Tallocated-length: ~D~%" (-> obj string-array allocated-length)) + (format #t "~Tlength: ~D~%" (-> obj string-array length)) + (dotimes (i (-> obj string-array length)) + (format #t "~T [~D] ~S ~A (~D bytes)~%" + i (-> obj string-array i) (-> obj data-array i) (mem-size (-> obj data-array i) #f 0)) + ) + obj + ) + +(defmethod mem-usage load-dir ((obj load-dir) (arg0 memory-usage-block) (arg1 int)) + "Get the memory usage data of a load-dir" + + (set! (-> arg0 length) (max 82 (-> arg0 length))) + (set! (-> arg0 data 81 name) "array") + (set! (-> arg0 data 81 count) (+ (-> arg0 data 81 count) 1)) + (let ((v1-6 (asize-of obj))) + (set! (-> arg0 data 81 used) (+ (-> arg0 data 81 used) v1-6)) + (set! + (-> arg0 data 81 total) + (+ (-> arg0 data 81 total) (logand -16 (+ v1-6 15))) + ) + ) + (set! (-> arg0 length) (max 82 (-> arg0 length))) + (set! (-> arg0 data 81 name) "array") + (set! (-> arg0 data 81 count) (-> arg0 data 81 count)) + (let ((v1-15 (asize-of (-> obj string-array)))) + (set! (-> arg0 data 81 used) (+ (-> arg0 data 81 used) v1-15)) + (set! + (-> arg0 data 81 total) + (+ (-> arg0 data 81 total) (logand -16 (+ v1-15 15))) + ) + ) + (set! (-> arg0 length) (max 82 (-> arg0 length))) + (set! (-> arg0 data 81 name) "array") + (set! (-> arg0 data 81 count) (-> arg0 data 81 count)) + (let ((v1-24 (asize-of (-> obj data-array)))) + (set! (-> arg0 data 81 used) (+ (-> arg0 data 81 used) v1-24)) + (set! + (-> arg0 data 81 total) + (+ (-> arg0 data 81 total) (logand -16 (+ v1-24 15))) + ) + ) + (dotimes (s3-0 (-> obj data-array length)) + (mem-usage (-> obj data-array s3-0) arg0 arg1) + ) + (the-as load-dir #f) + ) + +(defmethod dummy-9 load-dir-art-group ((obj load-dir-art-group) (arg0 string) (arg1 symbol) (arg2 kheap) (arg3 int)) + "This is not understood." + + (let ((s5-0 (-> obj string-array))) + (dotimes (s3-0 (-> s5-0 length)) + (when (string= arg0 (-> s5-0 s3-0)) + (when arg1 + (let ((v1-4 (art-group-load-check arg0 arg2 arg3))) + (if v1-4 + (set! (-> obj art-group-array s3-0) v1-4) + ) + ) + ) + (return (-> obj art-group-array s3-0)) + ) + ) + (let ((v0-2 (art-group-load-check arg0 arg2 arg3))) + (when v0-2 + (set! (-> s5-0 (-> s5-0 length)) arg0) + (set! (-> obj art-group-array (-> s5-0 length)) v0-2) + (1+! (-> s5-0 length)) + (1+! (-> obj art-group-array length)) + ) + v0-2 + ) + ) + ) + +(defmethod dummy-10 load-dir-art-group ((obj load-dir-art-group) (arg0 art-group)) + "This is not understood." + + (let ((s4-0 (-> obj string-array))) + (dotimes (s3-0 (-> s4-0 length)) + (when (string= (-> arg0 name) (-> s4-0 s3-0)) + (set! (-> obj art-group-array s3-0) arg0) + (return (-> obj art-group-array s3-0)) + ) + ) + (set! (-> s4-0 (-> s4-0 length)) (-> arg0 name)) + (set! (-> obj art-group-array (-> s4-0 length)) arg0) + (set! (-> s4-0 length) (+ (-> s4-0 length) 1)) + ) + (set! (-> obj art-group-array length) (+ (-> obj art-group-array length) 1)) + arg0 + ) + +(defun drawable-load ((arg0 drawable) (arg1 kheap)) + "Load a drawable file. Unused." + + (cond + ((type-type? (-> arg0 type) string) + #|(with-sp (protect sp + (if (< sp *stack-top*) + (set! sp (&+ *kernel-sp* -1024)) + )|# + (let ((s5-1 (the-as drawable (loado (the-as string arg0) arg1)))) + (if (and s5-1 (type-type? (-> s5-1 type) drawable)) + (login s5-1) + ) + ) + ;;)) + ) + ((type-type? (-> arg0 type) drawable) + (login arg0) + ) + ) + ) + +(defun art-load ((arg0 string) (arg1 kheap)) + "Load an art file. Unused." + + #|(with-sp (protect sp + (if (< sp *stack-top*) + (set! sp (&+ *kernel-sp* -1024)) + )|# + (let ((s5-0 (the-as art (loado arg0 arg1)))) + (if (type-type? (-> s5-0 type) art) + (dummy-9 s5-0) + (the-as art #f) + ) + ) + ;;)) + ) + +(defun art-group-load-check ((arg0 string) (arg1 kheap) (arg2 int)) + "Load and check an art-group file. this only runs if we're using debug memory." + + (when *debug-segment* + #|(with-sp (protect sp + (if (< sp *stack-top*) + (set! sp (&+ *kernel-sp* -1024)) + )|# + (let ((s3-1 (the-as art-group (loado (make-file-name (file-kind art-group) arg0 arg2 #f) arg1)))) + (cond + ((not s3-1) + (format 0 "ERROR: art-group ~A is not a valid file.~%" arg0) + (the-as art-group #f) + ) + ((not (type-type? (-> s3-1 type) art-group)) + (format 0 "ERROR: art-group ~A is not a art-group.~%" arg0) + (the-as art-group #f) + ) + ((not (file-info-correct-version? (-> s3-1 info) (file-kind art-group) arg2)) + ;;(format 0 "ERROR: art-group ~A is not the correct version.~%" arg0) + (the-as art-group #f) + ) + (else + (dummy-9 s3-1) + ) + ) + ) + ;;)) + ) + ) + +(defmethod want-file external-art-buffer ((obj external-art-buffer) (arg0 string) (arg1 int) (arg2 handle) (arg3 float)) + "Request a new file to be loaded into this buffer." + + (set! (-> obj pending-load-file) arg0) + (set! (-> obj pending-load-file-part) arg1) + (set! (-> obj pending-load-file-owner) arg2) + (set! (-> obj pending-load-file-priority) arg3) + 0 + ) + +(defmethod unlock! external-art-buffer ((obj external-art-buffer)) + "Unlock this buffer." + + (declare (inline)) + (set! (-> obj locked?) #f) + #f + ) + +(defmethod inactive? external-art-buffer ((obj external-art-buffer)) + "Is this buffer inactive?" + + (declare (inline)) + (!= (-> obj status) 'active) + ) + +(defmethod file-status external-art-buffer ((obj external-art-buffer) (name string) (part int)) + "Get the status of a file in the buffer. #f = file is not present." + + (when (and (name= (-> obj pending-load-file) name) + (= (-> obj pending-load-file-part) part) + ) + ;; the file is at least wanting to load + (if (and (name= (-> obj load-file) name) (= (-> obj load-file-part) part)) + (-> obj status) ;; file is loaded + 'pending ;; file is not loaded yet? + ) + ) + ) + +(defmethod link-art! art-group ((obj art-group)) + "Links the elements of this art-group." + + ;; this check seems superfluous + (when obj + (countdown (s5-0 (-> obj length)) + (let* ((art-elt (-> obj data s5-0)) + (janim (if (and (nonzero? art-elt) (type-type? (-> art-elt type) art-joint-anim)) + (the-as art-joint-anim art-elt) + )) + (success #f) + ) + (when janim + ;; a countdown with a label right at the start + (let ((s3-1 3)) + (while (begin + (label cfg-22) + (nonzero? s3-1) + ) + (+! s3-1 -1) + (let ((janim-group (art-group-get-by-name (-> *level* level s3-1) (-> janim master-art-group-name)))) + (when janim-group + (cond + ((and (< (-> janim master-art-group-index) (-> janim-group length)) + (not (-> janim-group data (-> janim master-art-group-index))) + ) + (set! (-> janim-group data (-> janim master-art-group-index)) janim) + (set! success #t) + ) + (else + (countdown (a0-14 (-> janim-group length)) + (when (not (-> janim-group data a0-14)) + (set! (-> janim-group data a0-14) janim) + (set! success #t) + (goto cfg-22) + ) + ) + ) + ) + ) + ) + ) + ) + (if (not success) + (format 0 "ERROR: ~A could not find a master slot to link for ~A.~%" (-> obj name) janim) + ) + ) + ) + ) + ) + obj + ) + +(defmethod unlink-art! art-group ((obj art-group)) + "Unlinks the elements of this art-group." + + (when obj + (countdown (s5-0 (-> obj length)) + (let* ((art-elt (-> obj data s5-0)) + (janim (if (and (nonzero? art-elt) (type-type? (-> art-elt type) art-joint-anim)) + (the-as art-joint-anim art-elt) + )) + (success #f) + ) + (when janim + (let ((s2-0 3)) + (while (begin + (label cfg-16) + (nonzero? s2-0) + ) + (+! s2-0 -1) + (let ((janim-group (art-group-get-by-name (-> *level* level s2-0) (-> janim master-art-group-name)))) + (when janim-group + (countdown (a0-5 (-> janim-group length)) + (when (= janim (-> janim-group data a0-5)) + (set! (-> janim-group data a0-5) #f) + (set! success #t) + (goto cfg-16) + ) + ) + ) + ) + ) + ) + (if (not success) + (format 0 "ERROR: ~A could not find a master slot to unlink for ~A.~%" (-> obj name) janim) + ) + ) + ) + ) + ) + 0 + ) + +(defmethod link-file external-art-buffer ((obj external-art-buffer) (ag art-group)) + "Link the art-group and set it to this buffer's art group." + + (when ag + (link-art! ag) + (set! (-> obj art-group) ag) + ) + ag + ) + +(defmethod unlink-file external-art-buffer ((obj external-art-buffer) (ag art-group)) + "Unlink the art-group and remove this buffer's art group." + + (when ag + (unlink-art! ag) + (set! (-> obj art-group) #f) + ) + 0 + ) + +(defmethod update external-art-buffer ((obj external-art-buffer)) + "Update this buffer." + + (when (or (not (name= (-> obj pending-load-file) (-> obj load-file))) + (!= (-> obj pending-load-file-part) (-> obj load-file-part)) + ) + ;; we're loading a different file, or a different part of a file + (unless (handle->process (-> obj pending-load-file-owner)) + ;; nobody owns the loading file so we can discard it + (set! (-> obj pending-load-file) #f) + (set! (-> obj pending-load-file-part) -1) + (set! (-> obj pending-load-file-owner) (the-as handle #f)) + (set! (-> obj pending-load-file-priority) SPOOL_PRIORITY_LOWEST) + ) + (when (= (-> obj status) 'initialize) + ;; we need to initialize the heap + (let ((v1-11 (-> obj heap))) + (set! (-> v1-11 base) (the-as pointer (+ #x84000 (* #x3dc00 (-> obj index))))) + (set! (-> v1-11 current) (-> v1-11 base)) + (set! (-> v1-11 top-base) (&+ (-> v1-11 base) #x3dc00)) + (set! (-> v1-11 top) (-> v1-11 top-base)) + ) + (set! (-> obj status) 'inactive) + ;; heap is now allocated, but there is no data to use + ) + (cond + ((-> obj load-file) + ;; the buffer is working on a file + (if (= (-> obj status) 'loading) + ;; something else is already loading, cancel that because we want something else + (str-load-cancel) + ) + ;; now nothing is loaded! + (set! (-> obj load-file) #f) + (set! (-> obj load-file-part) -1) + (set! (-> obj load-file-owner) (the-as handle #f)) + (set! (-> obj load-file-priority) SPOOL_PRIORITY_LOWEST) + ) + (else + ;; we have officially chosen to load this file + (set! (-> obj load-file) (-> obj pending-load-file)) + (set! (-> obj load-file-part) (-> obj pending-load-file-part)) + (set! (-> obj load-file-owner) (-> obj pending-load-file-owner)) + (set! (-> obj load-file-priority) (-> obj pending-load-file-priority)) + ) + ) + ) + (label cfg-18) + (cond + ((-> obj load-file) + ;; something is being worked on + (case (-> obj status) + (('active 'reserved) + ;; file is loaded and usable (or reserved) + ) + (('error) + ;; oops an error happened. make this buffer unusable now. + (set! (-> obj status) 'inactive) + (set! (-> obj load-file) #f) + (set! (-> obj load-file-part) -1) + (set! (-> obj load-file-owner) (the-as handle #f)) + (set! (-> obj load-file-priority) SPOOL_PRIORITY_LOWEST) + (set! (-> obj pending-load-file) #f) + (set! (-> obj pending-load-file-part) -1) + (set! (-> obj pending-load-file-owner) (the-as handle #f)) + (set! (-> obj pending-load-file-priority) SPOOL_PRIORITY_LOWEST) + (set! (-> obj art-group) #f) + ) + (('inactive) + ;; no usable data here, fill the buffer + ;; TODO macro + (let ((v1-28 (-> obj heap))) + (set! (-> v1-28 current) (-> v1-28 base)) + ) + (cond + ((string= (-> obj load-file) "reserved") ;; we want to reserve something + (cond + ((-> *art-control* reserve-buffer) + (format 0 "ERROR: trying double reserve ~A when ~A is reserved~%" obj (-> *art-control* reserve-buffer)) + ) + (else + (set! (-> obj status) 'reserved) + (set! (-> *art-control* reserve-buffer) obj) ;; this buffer is reserved + ) + ) + ) + ((and (!= (-> *level* loading-level) (-> *level* level-default)) + (< (meters 20) (-> obj load-file-priority)) + ) + ;; unused cond + ) + ((str-load (-> obj load-file) (-> obj load-file-part) (align64 (-> obj heap current)) #x3fc00) + (set! (-> obj status) 'loading) + ) + ) + ) + (('loading) + ;; loading... + (case (str-load-status (&-> obj len)) + (('error) + ;; something went wrong. oh well. + (set! (-> obj status) 'error) + ) + (('busy) + ;; loading. we have nothing to do. + ) + (else + ;; done!! + ;; not sure it is a good idea to assume that this is a success... + (set! (-> obj buf) (align64 (-> obj heap current))) + (set! (-> obj status) 'loaded) + (goto cfg-18) ;; go back and check status again! + ) + ) + ) + (('loaded) + ;; file is loaded. link it and see if we're good + (let ((a0-37 (-> obj buf))) + (set! (-> obj art-group) (the-as art-group (link (the-as pointer a0-37) (-> obj load-file data) (-> obj len) (-> obj heap) 0))) + ) + (let ((s4-0 (-> obj art-group)) + (s3-0 (-> obj load-file)) + ) + (cond + ((not s4-0) + (format 0 "ERROR: art-group ~A part ~D is not a valid file.~%" s3-0 (-> obj load-file-part)) + (set! (-> obj status) 'error) + ) + ((not (type-type? (-> s4-0 type) art-group)) + (format 0 "ERROR: art-group ~A part ~D is not a art-group.~%" s3-0 (-> obj load-file-part)) + (set! (-> obj status) 'error) + ) + ((not (file-info-correct-version? (-> s4-0 info) (file-kind art-group) 0)) + ;;(format 0 "ERROR: art-group ~A part ~D is the wrong version.~%" s3-0 (-> obj load-file-part)) + (set! (-> obj status) 'error) + ) + (else + (dummy-9 s4-0) + (set! (-> obj status) 'locked) ;; make file ready to be used + ) + ) + ) + ) + (('locked) + ;; this buffer is locked and needs to be unlocked before it can be used. + (when (and (not (-> obj locked?)) (handle->process (-> obj load-file-owner))) + ;; we want to be used, unlock this buffer and lock the other just in case. + (link-file obj (-> obj art-group)) + (set! (-> obj other locked?) #t) + (set! (-> obj status) 'active) + (goto cfg-18) + ) + ) + ) + ) + (else + ;; we want to get rid of the file! + (case (-> obj status) + (('initialize) + ;; this was done earlier + ) + (('reserved) + ;; this buffer is reserved + (cond + ((= (-> *art-control* reserve-buffer) obj) ;; yep it's this one! + (set! (-> *art-control* reserve-buffer) #f) + (set! (-> obj status) 'inactive) + ) + (else + (format 0 "ERROR: trying tro free ~A when ~A is reserved~%" obj (-> *art-control* reserve-buffer)) + ) + ) + ) + (('active) + ;; buffer is in use. not anymore! + (unlink-file obj (-> obj art-group)) + (let ((v1-70 (-> obj heap))) + (set! (-> v1-70 current) (-> v1-70 base)) + ) + (set! (-> obj art-group) #f) + (set! (-> obj status) 'inactive) + (when (-> obj other locked?) + (unlock! (-> obj other)) + (update (-> obj other)) + ) + ) + (else + ;; some other scenario, just get rid of the whole thing. + (let ((v1-79 (-> obj heap))) + (set! (-> v1-79 current) (-> v1-79 base)) + ) + (set! (-> obj art-group) #f) + (set! (-> obj status) 'inactive) + ) + ) + ) + ) + 0 + ) + + +;; start loading a spooled anim if we think one is about to be used, e.g. when approaching a fuel cell or npc +;; (some processes may want to wait for the stream to be preloaded, which won't happen with this disabled) +(define *preload-spool-anims* #t) + +(defmethod file-status external-art-control ((obj external-art-control) (name string) (part int)) + "Get the status of a file in this art control. #f = file not found" + + (dotimes (i 2) + (swhen (file-status (-> obj buffer i) name part) + (return bc) + ) + ) + #f + ) + +(defmethod update external-art-control ((obj external-art-control) (debug-print symbol)) + "Update this external-art-control. This validates the spool buffers, sorts the spools, and does some other things. + If debug-print, also prints some text to the display console" + + (if (nonzero? (-> obj reserve-buffer-count)) + (spool-push obj "reserved" 0 *dproc* (if (-> obj reserve-buffer) + -110.0 + -0.5) + ) + ) + (dotimes (v1-5 2) + (set! (-> obj buffer v1-5 frame-lock) #f) ;; I don't know what this is + ) + (dotimes (v1-8 3) + (set! (-> obj rec v1-8 buf2) #f) + ) + (dotimes (s4-0 2) + (let ((s3-0 (-> obj rec s4-0))) + (when (-> s3-0 name) + (dotimes (s2-0 2) + (when (and (file-status (-> obj buffer s2-0) (-> s3-0 name) (-> s3-0 parts)) + (not (-> obj buffer s2-0 frame-lock)) + ) + (set! (-> obj buffer s2-0 frame-lock) #t) + (set! (-> s3-0 buf2) (-> obj buffer s2-0)) + (set! (-> obj buffer s2-0 pending-load-file-owner) (-> s3-0 owner)) + (set! (-> obj buffer s2-0 load-file-owner) (-> s3-0 owner)) + (set! (-> obj buffer s2-0 pending-load-file-priority) (-> s3-0 priority)) + (set! (-> obj buffer s2-0 load-file-priority) (-> s3-0 priority)) + (goto cfg-24) ;; buffer found, move on. + ) + ) + ) + ) + (label cfg-24) + ) + + (dotimes (s4-1 2) + (let ((s3-1 (-> obj rec s4-1))) + (when (and (-> s3-1 name) (not (-> s3-1 buf2))) + (if (and (not *preload-spool-anims*) (>= (-> s3-1 priority) 0.0)) + ;; not in use, move on + (goto cfg-46) + ) + (dotimes (s2-1 2) + (when (not (-> obj buffer s2-1 frame-lock)) + (set! (-> obj buffer s2-1 frame-lock) #t) + (want-file (-> obj buffer s2-1) (-> s3-1 name) (-> s3-1 parts) (-> s3-1 owner) (-> s3-1 priority)) + (set! (-> s3-1 index) (the-as int (-> obj buffer s2-1))) + (goto cfg-46) + ) + ) + ) + ) + (label cfg-46) + ) + + (when (not (-> obj reserve-buffer)) + (let ((s4-2 (-> obj rec 0 buf1))) + (if (and s4-2 + (-> s4-2 locked?) + (not (string= (-> s4-2 pending-load-file) "reserved")) + (not (string= (-> s4-2 other pending-load-file) "reserved")) + ) + (want-file (-> s4-2 other) (the-as string #f) -1 (the-as handle #f) SPOOL_PRIORITY_LOWEST) + ) + ) + ) + + (dotimes (s4-3 2) + (update (-> obj buffer s4-3)) + ) + + ;; sort spool anims. + (let ((s4-4 (the-as spool-anim #f))) + (countdown (s3-2 3) + (if (and (-> obj rec s3-2 name) + (not (name= (-> obj rec s3-2 name) (-> obj active-stream))) + ) + (set! s4-4 (-> obj rec 0)) + ) + ) + (if (and (-> obj preload-stream name) + (or (not s4-4) (< (-> obj preload-stream priority) (-> s4-4 priority))) + ) + (set! s4-4 (-> obj preload-stream)) + ) + (cond + (s4-4 + (mem-copy! (&-> (-> obj last-preload-stream) type) (&-> s4-4 type) (size-of spool-anim)) + (str-play-queue (-> s4-4 name)) + ) + (else + (set! (-> obj last-preload-stream name) #f) + (set! (-> obj last-preload-stream owner) (the-as handle #f)) + ) + ) + ) + + (when (and debug-print *display-art-control*) + (dotimes (s5-1 3) + (format *stdcon* "rec ~d ~S ~D ~f ~A~%" s5-1 (-> obj rec s5-1 name) (-> obj rec s5-1 parts) (-> obj rec s5-1 priority) (handle->name (-> obj rec s5-1 owner))) + ) + (dotimes (s5-2 2) + (format *stdcon* "buf ~d ~C ~S ~D ~A ~A~%" s5-2 (if (-> obj buffer s5-2 locked?) #\l #\\s) (-> obj buffer s5-2 pending-load-file) (-> obj buffer s5-2 pending-load-file-part) (-> obj buffer s5-2 status) (handle->name (-> obj buffer s5-2 pending-load-file-owner))) + ) + (format *stdcon* " a: ~S~%" (-> obj active-stream)) + (format *stdcon* " p: ~S ~A~%" (-> obj preload-stream name) (handle->name (-> obj preload-stream owner))) + (format *stdcon* " q: ~S ~A~%" (-> obj last-preload-stream name) (handle->name (-> obj last-preload-stream owner))) + ) + 0 + ) + +(defmethod none-reserved? external-art-control ((obj external-art-control)) + "are there any reserved buffers?" + (declare (inline)) + (zero? (-> obj reserve-buffer-count)) + ) + +(defmethod reserve-alloc external-art-control ((obj external-art-control)) + "Reserve a buffer!" + + (set! (-> obj reserve-buffer-count) 1) + (if (-> obj reserve-buffer) + (-> obj reserve-buffer heap) + ) + ) + +(defmethod reserve-free external-art-control ((obj external-art-control) (arg0 kheap)) + "Free the reserved buffer!" + + (cond + ((none-reserved? obj) + (format 0 "ERROR: illegal attempt to free a buffer #x~X which had not been reserved (none reserved).~%" arg0) + ) + ((not (-> obj reserve-buffer)) + (set! (-> obj reserve-buffer-count) 0) + ) + ((= (-> obj reserve-buffer heap) arg0) + (want-file (-> obj reserve-buffer) (the-as string #f) -1 (the-as handle #f) SPOOL_PRIORITY_LOWEST) + (update (-> obj reserve-buffer)) + (set! (-> obj reserve-buffer-count) 0) + ) + (else + (format 0 "ERROR: illegal attempt to free a buffer #x~X which had not been reserved (buffer unknown).~%" arg0) + ) + ) + 0 + ) + +(defmethod clear-rec external-art-control ((obj external-art-control)) + "Clears the recent spool anims from the art control." + + (cond + ((!= *master-mode* 'game) + (dotimes (s5-0 3) + (when (name= (-> obj rec s5-0 name) "reserved") + (case s5-0 + ((0) + (mem-copy! (&-> obj rec 0 type) (&-> obj rec 1 type) (size-of spool-anim)) + (mem-copy! (&-> obj rec 1 type) (&-> obj rec 2 type) (size-of spool-anim)) + ) + ((1) + (mem-copy! (&-> obj rec 1 type) (&-> obj rec 2 type) (size-of spool-anim)) + ) + ) + (set! (-> obj rec 2 type) spool-anim) + (set! (-> obj rec 2 name) #f) + (set! (-> obj rec 2 priority) SPOOL_PRIORITY_LOWEST) + (set! (-> obj rec 2 owner) (the-as handle #f)) + ) + ) + ) + (else + (dotimes (v1-19 3) + (set! (-> obj rec v1-19 type) spool-anim) + (set! (-> obj rec v1-19 name) #f) + (set! (-> obj rec v1-19 priority) SPOOL_PRIORITY_LOWEST) + (set! (-> obj rec v1-19 owner) (the-as handle #f)) + ) + (set! (-> obj preload-stream type) spool-anim) + (set! (-> obj preload-stream name) #f) + (set! (-> obj preload-stream priority) SPOOL_PRIORITY_LOWEST) + (set! (-> obj preload-stream owner) (the-as handle #f)) + ) + ) + 0 + ) + +(defmacro spool-calc-priority (priority proc) + "Check the priority of a spool anim and recalculate it if needed. It will be the same as distance between target and the requesting process. + priority = var that stores priority + proc = a process to recalc from" + `(when (and (= ,priority SPOOL_PRIORITY_RECALC) ,proc) + (let ((target-trans (target-pos 0))) + (set! ,priority (vector-vector-distance target-trans (-> (the-as process-drawable ,proc) root trans))) + ) + ) + ) + +(defmethod try-preload-stream external-art-control ((obj external-art-control) (arg0 string) (arg1 int) (arg2 process) (arg3 float)) + "Set a new stream to be preloaded, if appropriate." + + (spool-calc-priority arg3 arg2) + + (unless (and (-> obj preload-stream name) + (>= arg3 (-> obj preload-stream priority)) + ) + (set! (-> obj preload-stream name) arg0) + (set! (-> obj preload-stream parts) arg1) + (set! (-> obj preload-stream priority) arg3) + (set! (-> obj preload-stream owner) (process->handle arg2)) + ) + 0 + ) + +(defmethod spool-push external-art-control ((obj external-art-control) (name string) (part int) (proc process) (priority float)) + "Push a spool-anim to the spool array. There are only space for three, and only the three highest priority spool anims will be kept. (lowest priority = top)" + + (spool-calc-priority priority proc) + + ;; if this spool-anim already exists, pop it from the rec list + (cond + ((and (= part (-> obj rec 0 parts)) (name= name (-> obj rec 0 name))) + (if (>= priority (-> obj rec 0 priority)) + (return (the-as int #f)) + ) + ;; first spool. copy 1st <- 2nd and 2nd <- 3rd, 3rd will be wiped + (mem-copy! (&-> obj rec 0 type) (&-> obj rec 1 type) (size-of spool-anim)) + (mem-copy! (&-> obj rec 1 type) (&-> obj rec 2 type) (size-of spool-anim)) + (set! (-> obj rec 2 name) #f) + (set! (-> obj rec 2 owner) (the-as handle #f)) + ) + ((and (= part (-> obj rec 1 parts)) (name= name (-> obj rec 1 name))) + (if (>= priority (-> obj rec 1 priority)) + (return (the-as int #f)) + ) + ;; second spool. copy 2nd <- 3rd, 3rd will be wiped + (mem-copy! (&-> obj rec 1 type) (&-> obj rec 2 type) (size-of spool-anim)) + (set! (-> obj rec 2 name) #f) + (set! (-> obj rec 2 owner) (the-as handle #f)) + ) + ((and (= part (-> obj rec 2 parts)) (name= name (-> obj rec 2 name))) + (if (>= priority (-> obj rec 2 priority)) + (return (the-as int #f)) + ) + ;; third spool. 3rd will be wiped + (set! (-> obj rec 2 name) #f) + (set! (-> obj rec 2 owner) (the-as handle #f)) + ) + ) + + ;; if it's top 3 priority, push this spool-anim to the rec list + (cond + ((< priority (-> obj rec 0 priority)) + ;; 1st place! + (mem-copy! (&-> obj rec 2 type) (&-> obj rec 1 type) (size-of spool-anim)) + (mem-copy! (&-> obj rec 1 type) (&-> obj rec 0 type) (size-of spool-anim)) + (set! (-> obj rec 0 name) name) + (set! (-> obj rec 0 parts) part) + (set! (-> obj rec 0 priority) priority) + (set! (-> obj rec 0 owner) (process->handle proc)) + ) + ((< priority (-> obj rec 1 priority)) + ;; 2nd place. + (mem-copy! (&-> obj rec 2 type) (&-> obj rec 1 type) (size-of spool-anim)) + (set! (-> obj rec 1 name) name) + (set! (-> obj rec 1 parts) part) + (set! (-> obj rec 1 priority) priority) + (set! (-> obj rec 1 owner) (process->handle proc)) + ) + ((< priority (-> obj rec 2 priority)) + ;; 3rd place... + (set! (-> obj rec 2 name) name) + (set! (-> obj rec 2 parts) part) + (set! (-> obj rec 2 priority) priority) + (set! (-> obj rec 2 owner) (process->handle proc)) + ) + ) + 0 + ) + +(defun-extern level-hint-surpress! none) ;; ? +(defun-extern ja-channel-push! int int int) ;; TODO temp +(defun-extern ja-channel-set! int int) ;; TODO temp +(defun-extern joint-control-channel-group-eval! joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ;; TODO temp +(defun-extern joint-control-channel-group! joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ;; TODO temp +(defun-extern ja-aframe-num int float) ;; TODO temp + +(define-extern ja-abort-spooled-anim (function spool-anim art-joint-anim int int :behavior process-drawable)) +(defbehavior ja-play-spooled-anim process-drawable ((arg0 spool-anim) (arg1 art-joint-anim) (arg2 art-joint-anim) (arg3 (function process-drawable symbol))) + "Set up and start playing a spooled animation. details not understood yet." + + (let ((spool-part 0) + (sv-24 -17.0) + (old-skel-status (-> self skel status)) + (sv-32 -2) + (sv-40 0) + (sv-48 0) + (sv-56 0) + (spool-sound (new-sound-id)) + ) + (dummy-17 *load-state* (-> arg0 command-list)) + (set-setting! *setting-control* self 'spooling (the-as symbol (process->ppointer self)) 0.0 0) + (logior! (-> self skel status) #x7) + (kill-current-level-hint '() '() 'die) + (level-hint-surpress!) + (copy-settings-from-target! *setting-control*) + ;; the spool lock is active (or we're not in game mode for some reason?) + (when (or (handle->process (-> *art-control* spool-lock)) + (!= *master-mode* 'game) + ) + (cond + (arg1 + (when (!= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + arg1 + ) + (ja-channel-push! 1 15) + ;; TODO macro + (let ((s2-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! s2-0 arg1 num-func-identity) + (set! (-> s2-0 frame-num) 0.0) + ) + ) + ) + (else + (ja-channel-set! 0) + ) + ) + (while (or (handle->process (-> *art-control* spool-lock)) + (!= *master-mode* 'game) + ) + (format #t "WARNING: ---------------------> loader stall on lock~%") + (if (arg3 self) + (goto anim-abort) + ) + (spool-push *art-control* (-> arg0 name) spool-part self -9.0) + (suspend) + (when arg1 + ;; TODO macro + (let ((a0-17 (-> self skel root-channel 0))) + (set! (-> a0-17 param 0) 1.0) + (joint-control-channel-group-eval! a0-17 (the-as art-joint-anim #f) num-func-loop!) + ) + ) + ) + ) + (set! (-> *art-control* spool-lock) (process->handle self)) + (set! sv-48 (the-as int (-> *display* base-frame-counter))) + (while (< spool-part (-> arg0 parts)) + (spool-push *art-control* (-> arg0 name) spool-part self -20.0) + (update *art-control* #f) + (spool-push *art-control* (-> arg0 name) spool-part self -20.0) + (when (!= (file-status *art-control* (-> arg0 name) spool-part) 'active) + (cond + (arg1 + (when (!= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + arg1 + ) + (ja-channel-set! 1) + (let ((s2-2 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! s2-2 arg1 num-func-identity) + (set! (-> s2-2 frame-num) 0.0) + ) + ) + ) + (else + (ja-channel-set! 0) + ) + ) + (while (!= (file-status *art-control* (-> arg0 name) spool-part) 'active) + (if (arg3 self) + (goto anim-abort) + ) + (spool-push *art-control* (-> arg0 name) spool-part self -20.0) + (format #t "WARNING: ---------------------> loader stall on art ~S ~D~%" (-> arg0 name) spool-part) + (suspend) + (when arg1 + (let ((a0-37 (-> self skel root-channel 0))) + (set! (-> a0-37 param 0) 1.0) + (joint-control-channel-group-eval! a0-37 (the-as art-joint-anim #f) num-func-loop!) + ) + ) + ) + ) + (spool-push *art-control* (-> arg0 name) spool-part self -20.0) + (let ((s2-4 (the-as art-joint-anim (dummy-10 (-> self draw art-group) (-> arg0 name) art-joint-anim)))) + (cond + (s2-4 + (ja-channel-set! 1) + (let ((a0-42 (-> self skel root-channel 0))) + (set! (-> a0-42 frame-group) s2-4) + (set! (-> a0-42 param 0) (the float (+ (-> s2-4 data 0 length) -1))) + (set! (-> a0-42 param 1) 1.0) + (set! (-> a0-42 frame-num) 0.0) + (joint-control-channel-group! a0-42 s2-4 num-func-seek!) + ) + (when (zero? spool-part) + (str-play-async (-> arg0 name) spool-sound) + (set! (-> *art-control* active-stream) (-> arg0 name)) + ) + (let* ((f30-0 (* 0.05859375 (-> s2-4 speed))) + (f28-0 (+ sv-24 (/ (the float (+ (-> s2-4 data 0 length) -1)) f30-0))) + (sv-72 (current-str-pos spool-sound)) + ) + (set! sv-40 (the-as int (-> *display* base-frame-counter))) + ;; uhh... + (until (begin + (spool-push *art-control* (-> arg0 name) spool-part self -20.0) + (cond + ((< (1+ spool-part) (-> arg0 parts)) + (spool-push *art-control* (-> arg0 name) (1+ spool-part) self -10.0) + ) + (else + (logclear! (-> self skel status) #x4) + ) + ) + (dummy-16 *load-state* (ja-aframe-num 0)) + (cond + ((and (< sv-32 sv-72) (= (current-str-id) spool-sound)) + (+! sv-56 (the-as int (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter)))) + (set! sv-40 (the-as int (-> *display* base-frame-counter))) + ) + (else + 0 + ) + ) + (set! sv-32 sv-72) + (set! sv-48 (the-as int (-> *display* base-frame-counter))) + (suspend) + (let ((f0-14 (* (- (the float (current-str-pos spool-sound)) sv-24) f30-0)) + (a0-69 (-> self skel root-channel 0)) + ) + (set! (-> a0-69 param 0) (the float (+ (-> a0-69 frame-group data 0 length) -1))) + (set! (-> a0-69 param 1) 1.0) + (set! (-> a0-69 frame-num) f0-14) + (joint-control-channel-group! a0-69 (the-as art-joint-anim #f) num-func-seek!) + ) + (let ((v0-39 (current-str-pos spool-sound))) + (set! sv-72 v0-39) + (>= (the float v0-39) f28-0) + ) + ) + (if (= (-> self skel root-channel 0) (-> self skel channel)) + (logior! (-> self skel status) #x20) + ) + (if (or (arg3 self) + (and (<= sv-72 0) + (>= (the-as int (- (-> *display* base-frame-counter) sv-40)) (seconds 4)) + ) + (and (< (seconds 1) sv-56) (<= sv-72 0)) + ) + (goto anim-abort) + ) + ) + (set! sv-24 f28-0) + ) + (logclear! (-> self skel status) #x20) + ) + (else + (format 0 "ERROR: ~A in spool anim loop for ~A ~D, but not loaded.~" self (-> arg0 name) spool-part) + (goto anim-abort) + ) + ) + ) + (1+! spool-part) + ) + (1-! spool-part) + (label anim-abort) + (ja-abort-spooled-anim arg0 arg2 spool-part) + ) + 0 + ) + +(defbehavior ja-abort-spooled-anim process-drawable ((arg0 spool-anim) (arg1 art-joint-anim) (arg2 int)) + "Abort a spooled animation." + + (dummy-18 *load-state*) + (str-play-stop (-> arg0 name)) + (set! (-> *art-control* active-stream) #f) + (logclear! (-> self skel status) #x6) ;; #x4 and #x2 + (if (not (logtest? (-> self skel status) 1)) + (logclear! (-> self skel status) #x1) + ) + (clear-pending-settings-from-process *setting-control* self 'spooling) + (cond + ((and arg1 (>= arg2 0)) + (ja-channel-push! 1 30) + (set! (-> self skel root-channel 0 frame-group) arg1) + (while (!= (-> self skel root-channel 0) (-> self skel channel)) + (spool-push *art-control* (-> arg0 name) arg2 self -20.0) + (suspend) + ;; TODO macro + (let ((a0-12 (-> self skel root-channel 0))) + (set! (-> a0-12 param 0) (the float (+ (-> a0-12 frame-group data 0 length) -1))) + (set! (-> a0-12 param 1) 1.0) + (joint-control-channel-group-eval! a0-12 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + (else + (ja-channel-set! 0) + ) + ) + (set! (-> *art-control* spool-lock) (the-as handle #f)) + 0 + ) + +(if (zero? *art-control*) + (set! *art-control* (new 'global 'external-art-control)) + ) + diff --git a/goal_src/engine/math/math.gc b/goal_src/engine/math/math.gc index 8a62fd311b..39d8c58b73 100644 --- a/goal_src/engine/math/math.gc +++ b/goal_src/engine/math/math.gc @@ -139,6 +139,15 @@ ) ) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;; utility macros +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defmacro seek! (place target rate) + "Macro to use seek in-place. place is the target, and where the result is stored." + `(set! ,place (seek ,place ,target ,rate)) + ) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; integer utility ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/goal_src/engine/math/vector.gc b/goal_src/engine/math/vector.gc index a222ac787b..3d21932e0d 100644 --- a/goal_src/engine/math/vector.gc +++ b/goal_src/engine/math/vector.gc @@ -505,17 +505,17 @@ (defun vector-seconds ((arg0 vector) (arg1 vector)) "Convert from actual seconds to the seconds unit." - (set! (-> arg0 data 0) (seconds (-> arg1 data 0))) - (set! (-> arg0 data 1) (seconds (-> arg1 data 1))) - (set! (-> arg0 data 2) (seconds (-> arg1 data 2))) + (set! (-> arg0 data 0) (fsec (-> arg1 data 0))) + (set! (-> arg0 data 1) (fsec (-> arg1 data 1))) + (set! (-> arg0 data 2) (fsec (-> arg1 data 2))) arg0 ) (defun vector-seconds! ((arg0 vector)) "Convert from actual seconds to seconds, in place" - (set! (-> arg0 data 0) (seconds (-> arg0 data 0))) - (set! (-> arg0 data 1) (seconds (-> arg0 data 1))) - (set! (-> arg0 data 2) (seconds (-> arg0 data 2))) + (set! (-> arg0 data 0) (fsec (-> arg0 data 0))) + (set! (-> arg0 data 1) (fsec (-> arg0 data 1))) + (set! (-> arg0 data 2) (fsec (-> arg0 data 2))) arg0 ) diff --git a/goal_src/engine/nav/navigate-h.gc b/goal_src/engine/nav/navigate-h.gc index 48d1a2df07..ca543f6375 100644 --- a/goal_src/engine/nav/navigate-h.gc +++ b/goal_src/engine/nav/navigate-h.gc @@ -9,6 +9,13 @@ :bitfield #t :type uint32 (display-marks 0) + (bit1 1) + (bit2 2) + (bit3 3) + (bit4 4) + (bit5 5) + (bit6 6) + (bit7 7) (bit8 8) (bit13 13) ) diff --git a/goal_src/engine/sound/gsound-h.gc b/goal_src/engine/sound/gsound-h.gc index 662275512c..1ba7b63641 100644 --- a/goal_src/engine/sound/gsound-h.gc +++ b/goal_src/engine/sound/gsound-h.gc @@ -374,7 +374,7 @@ :flag-assert #x90000004c ) -(define *current-sound-id* (the sound-id 65536)) +(define *current-sound-id* (the sound-id #x10000)) (deftype ambient-sound (basic) ((spec sound-spec :offset-assert 4) diff --git a/goal_src/engine/sound/gsound.gc b/goal_src/engine/sound/gsound.gc index 8be34f29be..d3c269c4b9 100644 --- a/goal_src/engine/sound/gsound.gc +++ b/goal_src/engine/sound/gsound.gc @@ -19,20 +19,20 @@ ) (deftype sound-iop-info (basic) - ((frame uint32 :offset 16) - (strpos int32 :offset-assert 20) - (str-id uint32 :offset-assert 24) - (str-id-sign int32 :offset 24) - (freemem uint32 :offset-assert 28) - (chinfo uint8 48 :offset-assert 32) - (freemem2 uint32 :offset-assert 80) - (nocd uint32 :offset-assert 84) - (dirtycd uint32 :offset-assert 88) - (diskspeed uint32 2 :offset-assert 92) - (lastspeed uint32 :offset-assert 100) - (dupseg int32 :offset-assert 104) - (times uint32 41 :offset-assert 108) - (times-seq uint32 :offset-assert 272) + ((frame uint32 :offset 16) + (strpos int32 :offset-assert 20) + (str-id sound-id :offset-assert 24) + (str-id-sign int32 :offset 24) + (freemem uint32 :offset-assert 28) + (chinfo uint8 48 :offset-assert 32) + (freemem2 uint32 :offset-assert 80) + (nocd uint32 :offset-assert 84) + (dirtycd uint32 :offset-assert 88) + (diskspeed uint32 2 :offset-assert 92) + (lastspeed uint32 :offset-assert 100) + (dupseg int32 :offset-assert 104) + (times uint32 41 :offset-assert 108) + (times-seq uint32 :offset-assert 272) ) :method-count-assert 9 :size-assert #x114 @@ -50,10 +50,10 @@ (defun current-str-id () "Return id of the current stream" - (-> *sound-iop-info* str-id-sign) + (the-as sound-id (-> *sound-iop-info* str-id-sign)) ) -(defun current-str-pos ((str int)) +(defun current-str-pos ((str sound-id)) "Return position of the current stream. Return -1 if specified stream is not current" (let ((ret -1)) @@ -886,7 +886,7 @@ 3 : to-maincave 4 : to-snow 5 : sage-green -6 : voicebox +6 : assistant 7 : birdlady 8 : mayor 9 : sculptor diff --git a/goal_src/engine/target/logic-target.gc b/goal_src/engine/target/logic-target.gc index f8ce580814..349829350f 100644 --- a/goal_src/engine/target/logic-target.gc +++ b/goal_src/engine/target/logic-target.gc @@ -10,6 +10,8 @@ (defun init-target ((cont continue-point)) "NOTHING11!!!!" + (looping-code) + (the object 0) ) diff --git a/goal_src/engine/target/target-h.gc b/goal_src/engine/target/target-h.gc index 2ad577faac..9ebc5d3b74 100644 --- a/goal_src/engine/target/target-h.gc +++ b/goal_src/engine/target/target-h.gc @@ -47,7 +47,7 @@ (deftype sidekick (process-drawable) ((control control-info :offset 112) (anim-seed uint64 :offset 192) - (shadow-in-movie? basic :offset-assert 200) + (shadow-in-movie? symbol :offset-assert 200) ) :heap-base #x60 :method-count-assert 20 diff --git a/goal_src/engine/ui/progress/progress-static.gc b/goal_src/engine/ui/progress/progress-static.gc index e46c803651..87e8752041 100644 --- a/goal_src/engine/ui/progress/progress-static.gc +++ b/goal_src/engine/ui/progress/progress-static.gc @@ -1360,13 +1360,14 @@ ) ) +;; goes down by 24 or 23 every time (define *task-egg-starting-x* (new 'static 'boxed-array :type int32 :length 9 :allocated-length 9 - #xda - #xc2 - #xab - #x93 - #x7c + 218 + 194 + 171 + 147 + 124 100 77 53 diff --git a/goal_src/engine/util/types-h.gc b/goal_src/engine/util/types-h.gc index e63366bfc0..1e1554bf9b 100644 --- a/goal_src/engine/util/types-h.gc +++ b/goal_src/engine/util/types-h.gc @@ -33,7 +33,8 @@ (defmacro meters (x) "Convert number to meters. If the input is a constant float or integer, the result will be a - compile time constant float. Otherwise, it will not be constant." + compile time constant float. Otherwise, it will not be constant. + Returns float." ;; we don't have enough constant propagation for the compiler to figure this out. (cond @@ -55,6 +56,7 @@ ;; quickly by converting to an int, masking, and back to float (defglobalconstant DEGREES_PER_ROT 65536.0) +;; this was deg in GOAL (defmacro degrees (x) "Convert number to degrees unit. Will keep a constant float/int constant." @@ -76,15 +78,27 @@ ;; an unsigned 32-bit integer can store about 150 days (defglobalconstant TICKS_PER_SECOND 300) ;; 5 t/frame @ 60fps, 6 t/frame @ 50fps +;; this was usec in GOAL (defmacro seconds (x) - "Convert number to seconds unit." + "Convert number to seconds unit. + Returns uint." (cond - ((float? x) - (* 1.0 TICKS_PER_SECOND x) - ) - ((integer? x) + ((or (integer? x) (float? x)) (* TICKS_PER_SECOND x) ) + (#t + `(the uint (* TICKS_PER_SECOND ,x)) + ) + ) + ) + +(defmacro fsec (x) + "Convert number to seconds unit. + Returns float." + (cond + ((or (integer? x) (float? x)) + (* 1.0 TICKS_PER_SECOND x) + ) (#t `(* 1.0 TICKS_PER_SECOND ,x) ) diff --git a/goal_src/goal-lib.gc b/goal_src/goal-lib.gc index 4f69000dcf..94483713c5 100644 --- a/goal_src/goal-lib.gc +++ b/goal_src/goal-lib.gc @@ -301,7 +301,8 @@ ) (defmacro dotimes (var &rest body) - "Loop like for (int i = 0; i < end; i++)" + "Loop like for (int i = 0; i < end; i++) + var is a list made up of a variable to bind the amount to (second item), and the remaining forms are evaluated after the loop is finished." `(let (( ,(first var) 0)) (while (< ,(first var) ,(second var)) ,@body @@ -488,14 +489,30 @@ `(set! ,place (logxor ,place ,amount)) ) -(defmacro lognor! (place amount) - `(set! ,place (lognor ,place ,amount)) - ) - (defmacro logand! (place amount) `(set! ,place (logand ,place ,amount)) ) +(defmacro logclear (a b) + "Returns the result of setting the bits in b to zero in a" + `(logand (lognot ,b) ,a) + ) + +(defmacro logclear! (a b) + "Sets the bits in b to zero in a, in place" + `(set! ,a (logand (lognot ,b) ,a)) + ) + +(defmacro logtest? (a b) + "does a have any of the bits in b?" + `(nonzero? (logand ,a ,b)) + ) + +(defmacro logtesta? (a b) + "does a have ALL of the bits in b?" + `(= (logand ,a ,b) ,b) + ) + (defmacro deref (t addr &rest fields) `(-> (the-as (pointer ,t) ,addr) ,@fields) ) diff --git a/goal_src/kernel-defs.gc b/goal_src/kernel-defs.gc index 5ad5df8681..75b040f58c 100644 --- a/goal_src/kernel-defs.gc +++ b/goal_src/kernel-defs.gc @@ -243,7 +243,7 @@ (new (symbol type basic) _type_ 0) (activate (_type_ process-tree basic pointer) process-tree 9) (deactivate (_type_) none 10) - (dummy-method-11 () none 11) + (dummy-method-11 (_type_ object) none 11) (run-logic? (_type_) symbol 12) (dummy-method () none 13) ) diff --git a/goal_src/kernel/gkernel-h.gc b/goal_src/kernel/gkernel-h.gc index 9c2fa5f505..151bdf80a7 100644 --- a/goal_src/kernel/gkernel-h.gc +++ b/goal_src/kernel/gkernel-h.gc @@ -118,12 +118,12 @@ (allow-to-run process-mask :offset-assert 12) (next-pid int32 :offset-assert 16) (fast-stack-top pointer :offset-assert 20) - (current-process basic :offset-assert 24) + (current-process process :offset-assert 24) (relocating-process basic :offset-assert 28) (relocating-min int32 :offset-assert 32) (relocating-max int32 :offset-assert 36) (relocating-offset int32 :offset-assert 40) - (low-memory-message basic :offset-assert 44) + (low-memory-message symbol :offset-assert 44) ) :size-assert #x30 @@ -212,7 +212,7 @@ (new (symbol type basic) _type_ 0) (activate (_type_ process-tree basic pointer) process-tree 9) (deactivate (_type_) none 10) - (dummy-method-11 () none 11) + (dummy-method-11 (_type_ object) none 11) (run-logic? (_type_) symbol 12) (dummy-method () none 13) ) @@ -236,7 +236,7 @@ (state state :offset-assert #x38) (trans-hook function :offset-assert #x3c) (post-hook function :offset-assert #x40) - (event-hook (function basic int basic event-message-block object) :offset-assert #x44) + (event-hook (function process int symbol event-message-block object) :offset-assert #x44) (allocated-length int32 :offset-assert #x48) (next-state state :offset-assert #x4c) (heap-base pointer :offset-assert #x50) @@ -251,7 +251,7 @@ (new (symbol type basic int) _type_ 0) (activate (_type_ process-tree basic pointer) process-tree 9) (deactivate (process) none 10) - (dummy-method-11 () none 11) + (dummy-method-11 (_type_ object) none 11) (run-logic? (process) symbol 12) (dummy-method () none 13) ) @@ -447,14 +447,14 @@ (trans (function object) :offset-assert 20) (post function :offset-assert 24) (enter (function object object object object object object object) :offset-assert 28) - (event (function basic int basic event-message-block object) :offset-assert 32) + (event (function process int symbol event-message-block object) :offset-assert 32) ) (:methods (new (symbol type basic function (function object) (function object object object object object object object) (function object) - (function basic int basic event-message-block object)) _type_ 0) + (function process int symbol event-message-block object)) _type_ 0) ) :method-count-assert 9 :size-assert #x24 @@ -464,10 +464,10 @@ ;; Not sure what this is, but it's probably used in the event system. (deftype event-message-block (structure) - ((to basic :offset-assert 0) - (from basic :offset-assert 4) + ((to process :offset-assert 0) + (from process :offset-assert 4) (num-params int32 :offset-assert 8) - (message basic :offset-assert 12) + (message symbol :offset-assert 12) (param uint64 7 :offset-assert 16) ) @@ -571,3 +571,21 @@ `(define ,name (lambda :name ,name :behavior ,process-type ,bindings ,@body)) ) ) + +(defmacro handle->name (handle) + "get the name of a process using a handle. #f is the result if the handle was invalid." + + (with-gensyms (proc) + `(let ((proc (handle->process ,handle))) + (if proc + (-> proc name) + ) + ) + ) + ) + + +(defmacro with-sp (&rest body) + `(rlet ((sp :reg rsp :reset-here #t :type pointer)) + ,@body) + ) diff --git a/goal_src/kernel/gstate.gc b/goal_src/kernel/gstate.gc index 23cb1b23e5..915d48f04d 100644 --- a/goal_src/kernel/gstate.gc +++ b/goal_src/kernel/gstate.gc @@ -144,16 +144,16 @@ There are several ways to "go" (trans (function object)) (enter (function object object object object object object object)) (exit (function object)) - (event (function basic int basic event-message-block object))) + (event (function process int symbol event-message-block object))) "Allocate a new state. It seems like this isn't really used much and most states are statically allocated and as a result don't have the constructor called." (let ((obj (object-new allocation type-to-make (the-as int (-> type-to-make size))))) (set! (-> obj name) name) - (set! (-> obj next) '#f) + (set! (-> obj next) #f) (set! (-> obj exit) exit) (set! (-> obj code) code) (set! (-> obj trans) trans) - (set! (-> obj post) '#f) + (set! (-> obj post) #f) (set! (-> obj enter) enter) (set! (-> obj event) event) obj @@ -318,6 +318,8 @@ There are several ways to "go" ) (defun send-event-function ((proc process) (msg event-message-block)) + "Function to send an event to a process. Please use the send-event macros when possible" + (with-pp (when (and proc (!= (-> proc type) process-tree) (-> proc event-hook)) (let ((pp-backup pp)) @@ -332,6 +334,8 @@ There are several ways to "go" ) (defmacro send-event (proc msg &rest params) + "Send an event to a process. This should be used over send-event-function" + `(with-pp (let ((event-data (new 'stack-no-clear 'event-message-block))) (set! (-> event-data from) pp) diff --git a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc index 8533f1126c..41ed8c75f4 100644 --- a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc @@ -389,17 +389,17 @@ ;; definition of type collide-shape (deftype collide-shape (trsqv) - ((process process :offset-assert 140) - (max-iteration-count uint8 :offset-assert 144) - (nav-flags uint8 :offset-assert 145) - (pad-byte uint8 2 :offset-assert 146) - (pat-ignore-mask pat-surface :offset-assert 148) - (event-self basic :offset-assert 152) - (event-other basic :offset-assert 156) - (root-prim basic :offset-assert 160) - (riders basic :offset-assert 164) - (backup-collide-as uint64 :offset-assert 168) - (backup-collide-with uint64 :offset-assert 176) + ((process process :offset-assert 140) + (max-iteration-count uint8 :offset-assert 144) + (nav-flags uint8 :offset-assert 145) + (pad-byte uint8 2 :offset-assert 146) + (pat-ignore-mask pat-surface :offset-assert 148) + (event-self basic :offset-assert 152) + (event-other basic :offset-assert 156) + (root-prim collide-shape-prim :offset-assert 160) + (riders basic :offset-assert 164) + (backup-collide-as uint64 :offset-assert 168) + (backup-collide-with uint64 :offset-assert 176) ) :method-count-assert 56 :size-assert #xb8 diff --git a/test/decompiler/reference/engine/data/art-h_REF.gc b/test/decompiler/reference/engine/data/art-h_REF.gc index 87141b9679..a44a525ac3 100644 --- a/test/decompiler/reference/engine/data/art-h_REF.gc +++ b/test/decompiler/reference/engine/data/art-h_REF.gc @@ -296,8 +296,8 @@ :size-assert #x20 :flag-assert #xf00000020 (:methods - (dummy-13 (_type_) int 13) - (dummy-14 (_type_) int 14) + (link-art! (_type_) art-group 13) + (unlink-art! (_type_) int 14) ) ) diff --git a/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc b/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc index 0fb4456247..bc72f1cf57 100644 --- a/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc +++ b/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc @@ -36,12 +36,12 @@ ) ;; definition for function num-func-none -(defun num-func-none ((arg0 joint-control-channel)) +(defun num-func-none ((arg0 joint-control-channel) (arg1 float) (arg2 float)) (-> arg0 frame-num) ) ;; definition for function num-func-+! -(defun num-func-+! ((arg0 joint-control-channel) (arg1 float)) +(defun num-func-+! ((arg0 joint-control-channel) (arg1 float) (arg2 float)) (let ((f0-1 (+ @@ -56,7 +56,7 @@ ) ;; definition for function num-func--! -(defun num-func--! ((arg0 joint-control-channel) (arg1 float)) +(defun num-func--! ((arg0 joint-control-channel) (arg1 float) (arg2 float)) (let ((f0-1 (- @@ -71,7 +71,7 @@ ) ;; definition for function num-func-loop! -(defun num-func-loop! ((chan joint-control-channel) (inc float)) +(defun num-func-loop! ((chan joint-control-channel) (inc float) (arg2 float)) (let* ((duration (the float (+ (-> chan frame-group data 0 length) -1))) (after-inc (+ @@ -112,7 +112,9 @@ ) ;; definition for function num-func-blend-in! -(defun num-func-blend-in! ((arg0 joint-control-channel) (arg1 float)) +(defun + num-func-blend-in! + ((arg0 joint-control-channel) (arg1 float) (arg2 float)) (let ((f30-0 (seek (-> arg0 frame-interp) 1.0 (* arg1 (-> *display* time-adjust-ratio))) @@ -128,7 +130,7 @@ ) ;; definition for function num-func-chan -(defun num-func-chan ((arg0 joint-control-channel) (arg1 float)) +(defun num-func-chan ((arg0 joint-control-channel) (arg1 float) (arg2 float)) (let ((f0-2 (-> @@ -149,7 +151,7 @@ ) ;; definition for function num-func-identity -(defun num-func-identity ((arg0 joint-control-channel)) +(defun num-func-identity ((arg0 joint-control-channel) (arg1 float) (arg2 float)) (-> arg0 frame-num) ) diff --git a/test/decompiler/reference/engine/entity/actor-link-h_REF.gc b/test/decompiler/reference/engine/entity/actor-link-h_REF.gc index 72eed8ea89..f4dd4a2b94 100644 --- a/test/decompiler/reference/engine/entity/actor-link-h_REF.gc +++ b/test/decompiler/reference/engine/entity/actor-link-h_REF.gc @@ -79,12 +79,12 @@ (apply-function-forward (_type_ (function entity-actor object object) object) int 16) (apply-function-reverse (_type_ (function entity-actor object object) object) int 17) (apply-all (_type_ (function entity-actor object object) object) int 18) - (send-to-all (_type_ object) none 19) - (send-to-all-after (_type_ object) object 20) - (send-to-all-before (_type_ object) object 21) - (send-to-next-and-prev (_type_ object) none 22) - (send-to-next (_type_ object) none 23) - (send-to-prev (_type_ object) none 24) + (send-to-all (_type_ symbol) none 19) + (send-to-all-after (_type_ symbol) object 20) + (send-to-all-before (_type_ symbol) object 21) + (send-to-next-and-prev (_type_ symbol) none 22) + (send-to-next (_type_ symbol) none 23) + (send-to-prev (_type_ symbol) none 24) (actor-count (_type_) int 25) ) ) @@ -236,7 +236,7 @@ (defmethod send-to-all-after actor-link-info - ((obj actor-link-info) (message object)) + ((obj actor-link-info) (message symbol)) (with-pp (let ((iter (-> obj next)) (result (the-as object #f)) @@ -247,7 +247,7 @@ (let ((msg-block (new 'stack-no-clear 'event-message-block))) (set! (-> msg-block from) pp) (set! (-> msg-block num-params) 0) - (set! (-> msg-block message) (the-as basic message)) + (set! (-> msg-block message) message) (let ((v1-3 (send-event-function proc msg-block))) (b! v1-3 cfg-4 :likely-delay (set! result v1-3)) ) @@ -266,7 +266,7 @@ (defmethod send-to-all-before actor-link-info - ((obj actor-link-info) (arg0 object)) + ((obj actor-link-info) (arg0 symbol)) (with-pp (let ((s4-0 (-> obj prev)) (s5-0 (the-as object #f)) @@ -277,7 +277,7 @@ (let ((a1-1 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-1 from) pp) (set! (-> a1-1 num-params) 0) - (set! (-> a1-1 message) (the-as basic arg0)) + (set! (-> a1-1 message) arg0) (let ((v1-3 (send-event-function a0-1 a1-1))) (b! v1-3 cfg-4 :likely-delay (set! s5-0 v1-3)) ) @@ -294,7 +294,7 @@ ;; definition for method 23 of type actor-link-info ;; INFO: Return type mismatch int vs none. -(defmethod send-to-next actor-link-info ((obj actor-link-info) (arg0 object)) +(defmethod send-to-next actor-link-info ((obj actor-link-info) (arg0 symbol)) (with-pp (let ((a0-1 (-> obj next))) (when a0-1 @@ -303,7 +303,7 @@ (let ((v1-4 (new 'stack-no-clear 'event-message-block))) (set! (-> v1-4 from) pp) (set! (-> v1-4 num-params) 0) - (set! (-> v1-4 message) (the-as basic arg0)) + (set! (-> v1-4 message) arg0) (send-event-function a0-2 v1-4) ) ) @@ -317,7 +317,7 @@ ;; definition for method 24 of type actor-link-info ;; INFO: Return type mismatch int vs none. -(defmethod send-to-prev actor-link-info ((obj actor-link-info) (arg0 object)) +(defmethod send-to-prev actor-link-info ((obj actor-link-info) (arg0 symbol)) (with-pp (let ((a0-1 (-> obj prev))) (when a0-1 @@ -326,7 +326,7 @@ (let ((v1-4 (new 'stack-no-clear 'event-message-block))) (set! (-> v1-4 from) pp) (set! (-> v1-4 num-params) 0) - (set! (-> v1-4 message) (the-as basic arg0)) + (set! (-> v1-4 message) arg0) (send-event-function a0-2 v1-4) ) ) @@ -342,7 +342,7 @@ (defmethod send-to-next-and-prev actor-link-info - ((obj actor-link-info) (arg0 object)) + ((obj actor-link-info) (arg0 symbol)) (send-to-next obj arg0) (send-to-prev obj arg0) (none) @@ -350,7 +350,7 @@ ;; definition for method 19 of type actor-link-info ;; INFO: Return type mismatch object vs none. -(defmethod send-to-all actor-link-info ((obj actor-link-info) (arg0 object)) +(defmethod send-to-all actor-link-info ((obj actor-link-info) (arg0 symbol)) (send-to-all-after obj arg0) (send-to-all-before obj arg0) (none) @@ -490,7 +490,3 @@ incomplete-count ) ) - - - - diff --git a/test/decompiler/reference/engine/entity/entity-h_REF.gc b/test/decompiler/reference/engine/entity/entity-h_REF.gc index 0b3c31483c..12e7e38cef 100644 --- a/test/decompiler/reference/engine/entity/entity-h_REF.gc +++ b/test/decompiler/reference/engine/entity/entity-h_REF.gc @@ -23,8 +23,8 @@ (user-uint8 uint8 8 :offset 0) (status entity-perm-status :offset-assert 8) (dummy uint8 1 :offset-assert 10) - (task uint8 :offset-assert 11) - (aid uint32 :offset-assert 12) + (task game-task :offset-assert 11) + (aid actor-id :offset-assert 12) (quad uint128 :offset 0) ) :pack-me @@ -68,8 +68,8 @@ (trans vector :inline :offset-assert 32) (perm entity-perm :inline :offset-assert 48) (status uint16 :offset 56) - (aid uint32 :offset 60) - (task uint8 :offset 59) + (aid actor-id :offset 60) + (task game-task :offset 59) ) :method-count-assert 10 :size-assert #x40 diff --git a/test/decompiler/reference/engine/game/game-h_REF.gc b/test/decompiler/reference/engine/game/game-h_REF.gc index f781e48454..04155d0695 100644 --- a/test/decompiler/reference/engine/game/game-h_REF.gc +++ b/test/decompiler/reference/engine/game/game-h_REF.gc @@ -7,17 +7,17 @@ (node-list cspace-array :offset-assert 116) (draw draw-control :offset-assert 120) (skel joint-control :offset-assert 124) - (nav basic :offset-assert 128) + (nav nav-control :offset-assert 128) (align align-control :offset-assert 132) - (path basic :offset-assert 136) - (vol basic :offset-assert 140) + (path path-control :offset-assert 136) + (vol vol-control :offset-assert 140) (fact fact-info :offset-assert 144) - (link basic :offset-assert 148) + (link actor-link-info :offset-assert 148) (part sparticle-launch-control :offset-assert 152) (water water-control :offset-assert 156) (sound ambient-sound :offset-assert 160) (state-flags uint32 :offset-assert 164) - (state-time uint64 :offset-assert 168) + (state-time seconds :offset-assert 168) ) :heap-base #x40 :method-count-assert 20 diff --git a/test/decompiler/reference/engine/game/game-info-h_REF.gc b/test/decompiler/reference/engine/game/game-info-h_REF.gc index 1323799562..44acc24d35 100644 --- a/test/decompiler/reference/engine/game/game-info-h_REF.gc +++ b/test/decompiler/reference/engine/game/game-info-h_REF.gc @@ -49,7 +49,7 @@ ;; definition of type level-buffer-state (deftype level-buffer-state (structure) - ((name basic :offset-assert 0) + ((name symbol :offset-assert 0) (display? symbol :offset-assert 4) (force-vis? symbol :offset-assert 8) (force-inside? symbol :offset-assert 12) @@ -89,11 +89,11 @@ (want-display-level (_type_ symbol symbol) int 12) (want-vis (_type_ symbol) int 13) (want-force-vis (_type_ symbol symbol) int 14) - (dummy-15 () none 15) - (dummy-16 () none 16) - (dummy-17 () none 17) - (dummy-18 () none 18) - (dummy-19 () none 19) + (dummy-15 (_type_ pair) none 15) + (dummy-16 (_type_ float) int 16) + (dummy-17 (_type_ pair) int 17) + (dummy-18 (_type_) int 18) + (dummy-19 (_type_) int 19) (dummy-20 () none 20) ) ) @@ -119,18 +119,18 @@ ;; definition of type continue-point (deftype continue-point (basic) ((name string :offset-assert 4) - (level basic :offset-assert 8) + (level symbol :offset-assert 8) (flags uint32 :offset-assert 12) (trans vector :inline :offset-assert 16) (quat quaternion :inline :offset-assert 32) (camera-trans vector :inline :offset-assert 48) (camera-rot float 9 :offset-assert 64) (load-commands pair :offset-assert 100) - (vis-nick basic :offset-assert 104) - (lev0 basic :offset-assert 108) - (disp0 basic :offset-assert 112) - (lev1 basic :offset-assert 116) - (disp1 basic :offset-assert 120) + (vis-nick symbol :offset-assert 104) + (lev0 symbol :offset-assert 108) + (disp0 symbol :offset-assert 112) + (lev1 symbol :offset-assert 116) + (disp1 symbol :offset-assert 120) ) :method-count-assert 10 :size-assert #x7c @@ -213,7 +213,7 @@ (initialize! (_type_ symbol game-save string) _type_ 9) (adjust (_type_ symbol float handle) float 10) (task-complete? (_type_ game-task) symbol 11) - (lookup-entity-perm-by-aid (_type_ uint) entity-perm 12) + (lookup-entity-perm-by-aid (_type_ actor-id) entity-perm 12) (get-entity-task-perm (_type_ game-task) entity-perm 13) (copy-perms-from-level! (_type_ level) none 14) (copy-perms-to-level! (_type_ level) none 15) diff --git a/test/decompiler/reference/engine/game/generic-obs-h_REF.gc b/test/decompiler/reference/engine/game/generic-obs-h_REF.gc index 759737c39c..556a95506d 100644 --- a/test/decompiler/reference/engine/game/generic-obs-h_REF.gc +++ b/test/decompiler/reference/engine/game/generic-obs-h_REF.gc @@ -3,21 +3,21 @@ ;; definition of type manipy (deftype manipy (process-drawable) - ((new-trans-hook function :offset-assert 176) - (cur-trans-hook function :offset-assert 180) - (cur-event-hook function :offset-assert 184) - (new-joint-anim basic :offset-assert 188) - (new-joint-anim-blend uint64 :offset-assert 192) - (anim-mode basic :offset-assert 200) - (cur-grab-handle uint64 :offset-assert 208) - (cur-target-handle uint64 :offset-assert 216) - (old-grab-pos vector :inline :offset-assert 224) - (joint joint 4 :offset-assert 240) - (new-post-hook function :offset-assert 256) - (cur-post-hook function :offset-assert 260) - (clone-copy-trans basic :offset-assert 264) - (shadow-backup basic :offset-assert 268) - (draw? symbol :offset-assert 272) + ((new-trans-hook function :offset-assert 176) + (cur-trans-hook function :offset-assert 180) + (cur-event-hook function :offset-assert 184) + (new-joint-anim art-joint-anim :offset-assert 188) + (new-joint-anim-blend uint64 :offset-assert 192) + (anim-mode symbol :offset-assert 200) + (cur-grab-handle uint64 :offset-assert 208) + (cur-target-handle uint64 :offset-assert 216) + (old-grab-pos vector :inline :offset-assert 224) + (joint joint 4 :offset-assert 240) + (new-post-hook function :offset-assert 256) + (cur-post-hook function :offset-assert 260) + (clone-copy-trans basic :offset-assert 264) + (shadow-backup basic :offset-assert 268) + (draw? symbol :offset-assert 272) ) :heap-base #xb0 :method-count-assert 20 diff --git a/test/decompiler/reference/engine/game/task/task-control-h_REF.gc b/test/decompiler/reference/engine/game/task/task-control-h_REF.gc index 7b25122601..dbee95ae51 100644 --- a/test/decompiler/reference/engine/game/task/task-control-h_REF.gc +++ b/test/decompiler/reference/engine/game/task/task-control-h_REF.gc @@ -72,7 +72,7 @@ :size-assert #x10 :flag-assert #xc00000010 (:methods - (dummy-9 () none 9) + (dummy-9 (_type_ vector int float process-drawable) none 9) (dummy-10 () none 10) (dummy-11 () none 11) ) @@ -89,10 +89,10 @@ ;; definition of type process-taskable (deftype process-taskable (process-drawable) - ((tasks basic :offset-assert 176) + ((tasks task-control :offset-assert 176) (query gui-query :inline :offset-assert 180) (old-target-pos transformq :inline :offset-assert 208) - (cell-for-task uint8 :offset-assert 256) + (cell-for-task game-task :offset-assert 256) (cell-x uint64 :offset-assert 264) (cam-joint-index int32 :offset-assert 272) (skippable basic :offset-assert 276) @@ -120,39 +120,39 @@ :size-assert #x17c :flag-assert #x350110017c (:methods - (dummy-20 () none 20) - (dummy-21 () none 21) - (dummy-22 () none 22) - (dummy-23 () none 23) - (dummy-24 () none 24) - (dummy-25 () none 25) - (dummy-26 () none 26) - (dummy-27 () none 27) - (dummy-28 () none 28) - (dummy-29 () none 29) - (dummy-30 () none 30) - (dummy-31 () none 31) - (dummy-32 () none 32) - (dummy-33 () none 33) - (dummy-34 () none 34) - (dummy-35 () none 35) - (dummy-36 () none 36) - (dummy-37 () none 37) - (dummy-38 () none 38) - (dummy-39 () none 39) - (dummy-40 () none 40) - (dummy-41 () none 41) - (dummy-42 () none 42) - (dummy-43 () none 43) - (dummy-44 () none 44) - (dummy-45 () none 45) - (dummy-46 () none 46) - (dummy-47 () none 47) - (dummy-48 () none 48) - (dummy-49 () none 49) - (dummy-50 () none 50) - (dummy-51 () none 51) - (dummy-52 () none 52) + (dummy-20 (_type_) none 20) + (dummy-21 (_type_) none 21) + (dummy-22 (_type_) none 22) + (dummy-23 (_type_) none 23) + (dummy-24 (_type_) none 24) + (dummy-25 (_type_) none 25) + (dummy-26 (_type_) none 26) + (dummy-27 (_type_) none 27) + (dummy-28 (_type_) none 28) + (dummy-29 (_type_) none 29) + (dummy-30 (_type_) none 30) + (dummy-31 (_type_) none 31) + (dummy-32 (_type_ symbol) spool-anim 32) + (dummy-33 (_type_) none 33) + (dummy-34 (_type_) none 34) + (dummy-35 (_type_) none 35) + (dummy-36 (_type_) none 36) + (dummy-37 (_type_) none 37) + (dummy-38 (_type_) none 38) + (dummy-39 (_type_) none 39) + (dummy-40 (_type_ object skeleton-group int int vector int) none 40) + (dummy-41 (_type_) none 41) + (dummy-42 (_type_) none 42) + (dummy-43 (_type_) none 43) + (dummy-44 (_type_) none 44) + (dummy-45 (_type_) none 45) + (dummy-46 (_type_) none 46) + (dummy-47 (_type_) none 47) + (dummy-48 (_type_) none 48) + (dummy-49 (_type_) none 49) + (dummy-50 (_type_) none 50) + (dummy-51 (_type_) none 51) + (dummy-52 (_type_) none 52) ) ) diff --git a/test/decompiler/reference/engine/gfx/sky/sky-h_REF.gc b/test/decompiler/reference/engine/gfx/sky/sky-h_REF.gc index a9ef2b4b7e..acb609eb4f 100644 --- a/test/decompiler/reference/engine/gfx/sky/sky-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/sky/sky-h_REF.gc @@ -62,12 +62,12 @@ (r-sun float :offset 16) (r-halo float :offset 20) (r-aurora float :offset 24) - (c-sun-start uint32 :offset 32) - (c-sun-end uint32 :offset 48) - (c-halo-start uint32 :offset 36) - (c-halo-end uint32 :offset 52) - (c-aurora-start uint32 :offset 40) - (c-aurora-end uint32 :offset 56) + (c-sun-start rgba :offset 32) + (c-sun-end rgba :offset 48) + (c-halo-start rgba :offset 36) + (c-halo-end rgba :offset 52) + (c-aurora-start rgba :offset 40) + (c-aurora-end rgba :offset 56) ) :method-count-assert 9 :size-assert #x40 diff --git a/test/decompiler/reference/engine/gfx/sky/sky-utils_REF.gc b/test/decompiler/reference/engine/gfx/sky/sky-utils_REF.gc index 88f9c9162a..af006ffd44 100644 --- a/test/decompiler/reference/engine/gfx/sky/sky-utils_REF.gc +++ b/test/decompiler/reference/engine/gfx/sky/sky-utils_REF.gc @@ -16,7 +16,7 @@ ;; definition for function sky-set-sun-colors (defun sky-set-sun-colors - ((arg0 sky-parms) (arg1 int) (arg2 uint) (arg3 uint) (arg4 uint) (arg5 uint)) + ((arg0 sky-parms) (arg1 int) (arg2 rgba) (arg3 rgba) (arg4 rgba) (arg5 rgba)) (let ((v1-0 (logand arg1 1))) (set! (-> arg0 upload-data sun v1-0 c-sun-start) arg2) (set! (-> arg0 upload-data sun v1-0 c-sun-end) arg3) @@ -31,7 +31,7 @@ ;; definition for function sky-set-sun-colors-sun (defun sky-set-sun-colors-sun - ((arg0 sky-parms) (arg1 int) (arg2 uint) (arg3 uint)) + ((arg0 sky-parms) (arg1 int) (arg2 rgba) (arg3 rgba)) (let ((v1-0 (logand arg1 1))) (set! (-> arg0 upload-data sun v1-0 c-sun-start) arg2) (set! (-> arg0 upload-data sun v1-0 c-sun-end) arg3) @@ -42,7 +42,7 @@ ;; definition for function sky-set-sun-colors-halo (defun sky-set-sun-colors-halo - ((arg0 sky-parms) (arg1 int) (arg2 uint) (arg3 uint)) + ((arg0 sky-parms) (arg1 int) (arg2 rgba) (arg3 rgba)) (let ((v1-0 (logand arg1 1))) (set! (-> arg0 upload-data sun v1-0 c-halo-start) arg2) (set! (-> arg0 upload-data sun v1-0 c-halo-end) arg3) @@ -53,7 +53,7 @@ ;; definition for function sky-set-sun-colors-aurora (defun sky-set-sun-colors-aurora - ((arg0 sky-parms) (arg1 int) (arg2 uint) (arg3 uint)) + ((arg0 sky-parms) (arg1 int) (arg2 rgba) (arg3 rgba)) (let ((v1-0 (logand arg1 1))) (set! (-> arg0 upload-data sun v1-0 c-aurora-start) arg2) (set! (-> arg0 upload-data sun v1-0 c-aurora-end) arg3) @@ -81,7 +81,3 @@ (set! (-> arg0 orbit arg1 max-halo) arg7) #f ) - - - - diff --git a/test/decompiler/reference/engine/load/load-dgo_REF.gc b/test/decompiler/reference/engine/load/load-dgo_REF.gc index 06e068321a..8617935fef 100644 --- a/test/decompiler/reference/engine/load/load-dgo_REF.gc +++ b/test/decompiler/reference/engine/load/load-dgo_REF.gc @@ -142,11 +142,11 @@ ;; definition for function str-play-async ;; INFO: Return type mismatch int vs none. -(defun str-play-async ((name string) (addr pointer)) +(defun str-play-async ((name string) (addr sound-id)) (set! *que-str-lock* #t) (let ((cmd (the-as load-chunk-msg (add-element *play-str-rpc*)))) (charp<-string (-> cmd basename) name) - (set! (-> cmd address) addr) + (set! (-> cmd address) (the-as pointer addr)) (set! (-> cmd result) (load-msg-result done)) ) 0 diff --git a/test/decompiler/reference/engine/load/loader-h_REF.gc b/test/decompiler/reference/engine/load/loader-h_REF.gc index 77103d1290..ef119193ed 100644 --- a/test/decompiler/reference/engine/load/loader-h_REF.gc +++ b/test/decompiler/reference/engine/load/loader-h_REF.gc @@ -12,8 +12,8 @@ :flag-assert #xb00000010 (:methods (new (symbol type int basic) _type_ 0) - (dummy-9 () none 9) - (dummy-10 () none 10) + (dummy-9 (_type_ string symbol kheap int) art-group 9) + (dummy-10 (_type_ art-group) art-group 10) ) ) @@ -83,13 +83,13 @@ (heap kheap :inline :offset-assert 32) (pending-load-file string :offset-assert 48) (pending-load-file-part int32 :offset-assert 52) - (pending-load-file-owner uint64 :offset-assert 56) + (pending-load-file-owner handle :offset-assert 56) (pending-load-file-priority float :offset-assert 64) (load-file string :offset-assert 68) (load-file-part int32 :offset-assert 72) - (load-file-owner uint64 :offset-assert 80) + (load-file-owner handle :offset-assert 80) (load-file-priority float :offset-assert 88) - (buf uint32 :offset-assert 92) + (buf pointer :offset-assert 92) (len int32 :offset-assert 96) (art-group art-group :offset-assert 100) ) @@ -98,13 +98,13 @@ :flag-assert #x1000000068 (:methods (new (symbol type int) _type_ 0) - (dummy-9 (_type_ symbol int symbol float) none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) - (dummy-15 () none 15) + (want-file (_type_ string int handle float) int 9) + (update (_type_) int 10) + (inactive? (_type_) symbol 11) + (file-status (_type_ string int) symbol 12) + (link-file (_type_ art-group) art-group 13) + (unlink-file (_type_ art-group) int 14) + (unlock! (_type_) symbol 15) ) ) @@ -148,11 +148,11 @@ (set! (-> obj index) idx) (set! (-> obj load-file) #f) (set! (-> obj load-file-part) -1) - (set! (-> obj load-file-owner) (the-as uint #f)) + (set! (-> obj load-file-owner) (the-as handle #f)) (set! (-> obj load-file-priority) 100000000.0) (set! (-> obj pending-load-file) #f) (set! (-> obj pending-load-file-part) -1) - (set! (-> obj pending-load-file-owner) (the-as uint #f)) + (set! (-> obj pending-load-file-owner) (the-as handle #f)) (set! (-> obj pending-load-file-priority) 100000000.0) (set! (-> obj art-group) #f) (set! (-> obj status) 'initialize) @@ -164,12 +164,14 @@ ;; definition of type spool-anim (deftype spool-anim (basic) - ((name string :offset 16) - (index int32 :offset-assert 20) - (parts int32 :offset-assert 24) - (priority float :offset-assert 28) - (owner uint64 :offset-assert 32) - (command-list basic :offset-assert 40) + ((name string :offset 16) + (buf1 external-art-buffer :offset 16) + (buf2 external-art-buffer :offset-assert 20) + (index int32 :offset 20) + (parts int32 :offset-assert 24) + (priority float :offset-assert 28) + (owner handle :offset-assert 32) + (command-list pair :offset-assert 40) ) :pack-me :method-count-assert 9 @@ -181,7 +183,7 @@ (defmethod inspect spool-anim ((obj spool-anim)) (format #t "[~8x] ~A~%" obj (-> obj type)) (format #t "~Tname: ~A~%" (-> obj name)) - (format #t "~Tindex: ~D~%" (-> obj index)) + (format #t "~Tindex: ~D~%" (-> obj buf2)) (format #t "~Tparts: ~D~%" (-> obj parts)) (format #t "~Tpriority: ~f~%" (-> obj priority)) (format #t "~Towner: ~D~%" (-> obj owner)) @@ -193,10 +195,10 @@ (deftype external-art-control (basic) ((buffer external-art-buffer 2 :offset-assert 4) (rec spool-anim 3 :inline :offset-assert 16) - (spool-lock uint64 :offset-assert 160) - (reserve-buffer basic :offset-assert 168) + (spool-lock handle :offset-assert 160) + (reserve-buffer external-art-buffer :offset-assert 168) (reserve-buffer-count int32 :offset-assert 172) - (active-stream basic :offset-assert 176) + (active-stream string :offset-assert 176) (preload-stream spool-anim :inline :offset-assert 184) (last-preload-stream spool-anim :inline :offset-assert 232) (end-pad uint32 :offset-assert 276) @@ -206,14 +208,14 @@ :flag-assert #x1100000118 (:methods (new (symbol type) _type_ 0) - (dummy-9 (_type_ symbol) none 9) - (dummy-10 (_type_) none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) - (dummy-15 () none 15) - (dummy-16 () none 16) + (update (_type_ symbol) int 9) + (clear-rec (_type_) int 10) + (spool-push (_type_ string int process float) int 11) + (file-status (_type_ string int) symbol 12) + (reserve-alloc (_type_) kheap 13) + (reserve-free (_type_ kheap) int 14) + (none-reserved? (_type_) symbol 15) + (try-preload-stream (_type_ string int process float) int 16) ) ) @@ -257,17 +259,17 @@ (dotimes (rec-idx 3) (set! (-> obj rec rec-idx name) #f) (set! (-> obj rec rec-idx priority) 100000000.0) - (set! (-> obj rec rec-idx owner) (the-as uint #f)) + (set! (-> obj rec rec-idx owner) (the-as handle #f)) ) - (set! (-> obj spool-lock) (the-as uint #f)) + (set! (-> obj spool-lock) (the-as handle #f)) (set! (-> obj reserve-buffer) #f) (set! (-> obj active-stream) #f) (set! (-> obj preload-stream name) #f) (set! (-> obj preload-stream priority) 100000000.0) - (set! (-> obj preload-stream owner) (the-as uint #f)) + (set! (-> obj preload-stream owner) (the-as handle #f)) (set! (-> obj last-preload-stream name) #f) (set! (-> obj last-preload-stream priority) 100000000.0) - (set! (-> obj last-preload-stream owner) (the-as uint #f)) + (set! (-> obj last-preload-stream owner) (the-as handle #f)) obj ) ) diff --git a/test/decompiler/reference/engine/load/loader_REF.gc b/test/decompiler/reference/engine/load/loader_REF.gc new file mode 100644 index 0000000000..9d1219ee95 --- /dev/null +++ b/test/decompiler/reference/engine/load/loader_REF.gc @@ -0,0 +1,1457 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for method 3 of type load-dir +;; Used lq/sq +(defmethod inspect load-dir ((obj load-dir)) + (local-vars (sv-16 basic)) + (format #t "[~8x] ~A~%" obj (-> obj type)) + (format #t "~Tlevel: ~A~%" (-> obj unknown)) + (format #t "~Tallocated-length: ~D~%" (-> obj string-array allocated-length)) + (format #t "~Tlength: ~D~%" (-> obj string-array length)) + (dotimes (s5-0 (-> obj string-array length)) + (let ((s4-0 format) + (s3-0 #t) + (s2-0 "~T [~D] ~S ~A (~D bytes)~%") + (s1-0 s5-0) + (s0-0 (-> obj string-array s5-0)) + ) + (set! sv-16 (-> obj data-array s5-0)) + (let ((t1-0 (mem-size (-> obj data-array s5-0) #f 0))) + (s4-0 s3-0 s2-0 s1-0 s0-0 sv-16 t1-0) + ) + ) + ) + obj + ) + +;; definition for method 8 of type load-dir +;; INFO: Return type mismatch symbol vs load-dir. +(defmethod + mem-usage + load-dir + ((obj load-dir) (arg0 memory-usage-block) (arg1 int)) + (set! (-> arg0 length) (max 82 (-> arg0 length))) + (set! (-> arg0 data 81 name) "array") + (+! (-> arg0 data 81 count) 1) + (let ((v1-6 (asize-of obj))) + (+! (-> arg0 data 81 used) v1-6) + (+! (-> arg0 data 81 total) (logand -16 (+ v1-6 15))) + ) + (set! (-> arg0 length) (max 82 (-> arg0 length))) + (set! (-> arg0 data 81 name) "array") + (set! (-> arg0 data 81 count) (-> arg0 data 81 count)) + (let ((v1-15 (asize-of (-> obj string-array)))) + (+! (-> arg0 data 81 used) v1-15) + (+! (-> arg0 data 81 total) (logand -16 (+ v1-15 15))) + ) + (set! (-> arg0 length) (max 82 (-> arg0 length))) + (set! (-> arg0 data 81 name) "array") + (set! (-> arg0 data 81 count) (-> arg0 data 81 count)) + (let ((v1-24 (asize-of (-> obj data-array)))) + (+! (-> arg0 data 81 used) v1-24) + (+! (-> arg0 data 81 total) (logand -16 (+ v1-24 15))) + ) + (dotimes (s3-0 (-> obj data-array length)) + (mem-usage (-> obj data-array s3-0) arg0 arg1) + ) + (the-as load-dir #f) + ) + +;; definition for method 9 of type load-dir-art-group +(defmethod + dummy-9 + load-dir-art-group + ((obj load-dir-art-group) (arg0 string) (arg1 symbol) (arg2 kheap) (arg3 int)) + (let ((s5-0 (-> obj string-array))) + (dotimes (s3-0 (-> s5-0 length)) + (when (string= arg0 (-> s5-0 s3-0)) + (when arg1 + (let ((v1-4 (art-group-load-check arg0 arg2 arg3))) + (if v1-4 + (set! (-> obj art-group-array s3-0) v1-4) + ) + ) + ) + (return (-> obj art-group-array s3-0)) + ) + ) + (let ((v0-2 (art-group-load-check arg0 arg2 arg3))) + (when v0-2 + (set! (-> s5-0 (-> s5-0 length)) arg0) + (set! (-> obj art-group-array (-> s5-0 length)) v0-2) + (+! (-> s5-0 length) 1) + (+! (-> obj art-group-array length) 1) + ) + v0-2 + ) + ) + ) + +;; definition for method 10 of type load-dir-art-group +(defmethod + dummy-10 + load-dir-art-group + ((obj load-dir-art-group) (arg0 art-group)) + (let ((s4-0 (-> obj string-array))) + (dotimes (s3-0 (-> s4-0 length)) + (when (string= (-> arg0 name) (-> s4-0 s3-0)) + (set! (-> obj art-group-array s3-0) arg0) + (set! arg0 (-> obj art-group-array s3-0)) + (goto cfg-7) + ) + ) + (set! (-> s4-0 (-> s4-0 length)) (-> arg0 name)) + (set! (-> obj art-group-array (-> s4-0 length)) arg0) + (+! (-> s4-0 length) 1) + ) + (+! (-> obj art-group-array length) 1) + (label cfg-7) + arg0 + ) + +;; definition for function drawable-load +(defun drawable-load ((arg0 drawable) (arg1 kheap)) + (local-vars (sp-0 none)) + (cond + ((type-type? (-> arg0 type) string) + sp-0 + (if (< (the-as uint sp-0) (the-as uint *stack-top*)) + (&+ *kernel-sp* -1024) + ) + (let ((s5-1 (the-as drawable (loado (the-as string arg0) arg1)))) + (if (and s5-1 (type-type? (-> s5-1 type) drawable)) + (login s5-1) + ) + ) + ) + ((type-type? (-> arg0 type) drawable) + (login arg0) + ) + ) + ) + +;; definition for function art-load +(defun art-load ((arg0 string) (arg1 kheap)) + (local-vars (sp-0 none)) + sp-0 + (if (< (the-as uint sp-0) (the-as uint *stack-top*)) + (&+ *kernel-sp* -1024) + ) + (let ((s5-0 (loado arg0 arg1))) + (the-as art (if (type-type? (-> (the-as art s5-0) type) art) + (dummy-9 (the-as art s5-0)) + (the-as art #f) + ) + ) + ) + ) + +;; definition for function art-group-load-check +(defun art-group-load-check ((arg0 string) (arg1 kheap) (arg2 int)) + (local-vars (sp-0 none)) + (when *debug-segment* + sp-0 + (if (< (the-as uint sp-0) (the-as uint *stack-top*)) + (&+ *kernel-sp* -1024) + ) + (let + ((s3-1 + (the-as + art-group + (loado (make-file-name (file-kind art-group) arg0 arg2 #f) arg1) + ) + ) + ) + (the-as art-group (cond + ((not s3-1) + (format + 0 + "ERROR: art-group ~A is not a valid file.~%" + arg0 + ) + (the-as art-group #f) + ) + ((not (type-type? (-> s3-1 type) art-group)) + (format + 0 + "ERROR: art-group ~A is not a art-group.~%" + arg0 + ) + (the-as art-group #f) + ) + ((not + (file-info-correct-version? + (-> s3-1 info) + (file-kind art-group) + arg2 + ) + ) + (the-as art-group #f) + ) + (else + (dummy-9 s3-1) + ) + ) + ) + ) + ) + ) + +;; definition for method 9 of type external-art-buffer +(defmethod + want-file + external-art-buffer + ((obj external-art-buffer) + (arg0 string) + (arg1 int) + (arg2 handle) + (arg3 float) + ) + (set! (-> obj pending-load-file) arg0) + (set! (-> obj pending-load-file-part) arg1) + (set! (-> obj pending-load-file-owner) arg2) + (set! (-> obj pending-load-file-priority) arg3) + 0 + ) + +;; definition for method 15 of type external-art-buffer +(defmethod unlock! external-art-buffer ((obj external-art-buffer)) + (set! (-> obj locked?) #f) + #f + ) + +;; definition for method 11 of type external-art-buffer +(defmethod inactive? external-art-buffer ((obj external-art-buffer)) + (!= (-> obj status) 'active) + ) + +;; definition for method 12 of type external-art-buffer +(defmethod + file-status + external-art-buffer + ((obj external-art-buffer) (arg0 string) (arg1 int)) + (when + (and + (name= (-> obj pending-load-file) arg0) + (= (-> obj pending-load-file-part) arg1) + ) + (if (and (name= (-> obj load-file) arg0) (= (-> obj load-file-part) arg1)) + (-> obj status) + 'pending + ) + ) + ) + +;; definition for method 13 of type art-group +(defmethod link-art! art-group ((obj art-group)) + (when obj + (countdown (s5-0 (-> obj length)) + (let* ((art-elt (-> obj data s5-0)) + (janim + (if + (and + (nonzero? art-elt) + (type-type? (-> art-elt type) art-joint-anim) + ) + (the-as art-joint-anim art-elt) + ) + ) + (success #f) + ) + (when janim + (let ((s3-1 3)) + (while (begin + (label cfg-22) + (nonzero? s3-1) + ) + (+! s3-1 -1) + (let + ((janim-group + (art-group-get-by-name + (-> *level* level s3-1) + (-> janim master-art-group-name) + ) + ) + ) + (when janim-group + (cond + ((and + (< (-> janim master-art-group-index) (-> janim-group length)) + (not (-> janim-group data (-> janim master-art-group-index))) + ) + (set! (-> janim-group data (-> janim master-art-group-index)) janim) + (set! success #t) + ) + (else + (countdown (a0-14 (-> janim-group length)) + (when (not (-> janim-group data a0-14)) + (set! (-> janim-group data a0-14) janim) + (set! success #t) + (goto cfg-22) + ) + ) + ) + ) + ) + ) + ) + ) + (if (not success) + (format + 0 + "ERROR: ~A could not find a master slot to link for ~A.~%" + (-> obj name) + janim + ) + ) + ) + ) + ) + ) + obj + ) + +;; definition for method 14 of type art-group +(defmethod unlink-art! art-group ((obj art-group)) + (when obj + (countdown (s5-0 (-> obj length)) + (let* ((art-elt (-> obj data s5-0)) + (janim + (if + (and + (nonzero? art-elt) + (type-type? (-> art-elt type) art-joint-anim) + ) + (the-as art-joint-anim art-elt) + ) + ) + (success #f) + ) + (when janim + (let ((s2-0 3)) + (while (begin + (label cfg-16) + (nonzero? s2-0) + ) + (+! s2-0 -1) + (let + ((janim-group + (art-group-get-by-name + (-> *level* level s2-0) + (-> janim master-art-group-name) + ) + ) + ) + (when janim-group + (countdown (a0-5 (-> janim-group length)) + (when (= janim (-> janim-group data a0-5)) + (set! (-> janim-group data a0-5) #f) + (set! success #t) + (goto cfg-16) + ) + ) + ) + ) + ) + ) + (if (not success) + (format + 0 + "ERROR: ~A could not find a master slot to unlink for ~A.~%" + (-> obj name) + janim + ) + ) + ) + ) + ) + ) + 0 + ) + +;; definition for method 13 of type external-art-buffer +(defmethod + link-file + external-art-buffer + ((obj external-art-buffer) (arg0 art-group)) + (when arg0 + (link-art! arg0) + (set! (-> obj art-group) arg0) + ) + arg0 + ) + +;; definition for method 14 of type external-art-buffer +(defmethod + unlink-file + external-art-buffer + ((obj external-art-buffer) (arg0 art-group)) + (when arg0 + (unlink-art! arg0) + (set! (-> obj art-group) #f) + ) + 0 + ) + +;; definition for method 10 of type external-art-buffer +;; WARN: Found some very strange gotos. Check result carefully, this is not well tested. +(defmethod update external-art-buffer ((obj external-art-buffer)) + (local-vars (v1-54 handle)) + (when + (or + (not (name= (-> obj pending-load-file) (-> obj load-file))) + (!= (-> obj pending-load-file-part) (-> obj load-file-part)) + ) + (when (not (handle->process (-> obj pending-load-file-owner))) + (set! (-> obj pending-load-file) #f) + (set! (-> obj pending-load-file-part) -1) + (set! (-> obj pending-load-file-owner) (the-as handle #f)) + (set! (-> obj pending-load-file-priority) 100000000.0) + ) + (when (= (-> obj status) 'initialize) + (let ((v1-11 (-> obj heap))) + (set! + (-> v1-11 base) + (the-as pointer (+ #x84000 (* #x3dc00 (-> obj index)))) + ) + (set! (-> v1-11 current) (-> v1-11 base)) + (set! (-> v1-11 top-base) (&+ (-> v1-11 base) #x3dc00)) + (set! (-> v1-11 top) (-> v1-11 top-base)) + ) + (set! (-> obj status) 'inactive) + ) + (cond + ((-> obj load-file) + (if (= (-> obj status) 'loading) + (str-load-cancel) + ) + (set! (-> obj load-file) #f) + (set! (-> obj load-file-part) -1) + (set! (-> obj load-file-owner) (the-as handle #f)) + (set! (-> obj load-file-priority) 100000000.0) + ) + (else + (set! (-> obj load-file) (-> obj pending-load-file)) + (set! (-> obj load-file-part) (-> obj pending-load-file-part)) + (set! (-> obj load-file-owner) (-> obj pending-load-file-owner)) + (set! (-> obj load-file-priority) (-> obj pending-load-file-priority)) + ) + ) + ) + (label cfg-18) + (cond + ((-> obj load-file) + (case (-> obj status) + (('active 'reserved) + ) + (('error) + (set! (-> obj status) 'inactive) + (set! (-> obj load-file) #f) + (set! (-> obj load-file-part) -1) + (set! (-> obj load-file-owner) (the-as handle #f)) + (set! (-> obj load-file-priority) 100000000.0) + (set! (-> obj pending-load-file) #f) + (set! (-> obj pending-load-file-part) -1) + (set! (-> obj pending-load-file-owner) (the-as handle #f)) + (set! (-> obj pending-load-file-priority) 100000000.0) + (set! (-> obj art-group) #f) + ) + (('inactive) + (let ((v1-28 (-> obj heap))) + (set! (-> v1-28 current) (-> v1-28 base)) + ) + (cond + ((string= (-> obj load-file) "reserved") + (cond + ((-> *art-control* reserve-buffer) + (format + 0 + "ERROR: trying double reserve ~A when ~A is reserved~%" + obj + (-> *art-control* reserve-buffer) + ) + ) + (else + (set! (-> obj status) 'reserved) + (set! (-> *art-control* reserve-buffer) obj) + ) + ) + ) + ((and + (!= (-> *level* loading-level) (-> *level* level-default)) + (< 81920.0 (-> obj load-file-priority)) + ) + ) + ((str-load + (-> obj load-file) + (-> obj load-file-part) + (logand -64 (&+ (-> obj heap current) 63)) + #x3fc00 + ) + (set! (-> obj status) 'loading) + ) + ) + ) + (('loading) + (case (str-load-status (&-> obj len)) + (('error) + (set! (-> obj status) 'error) + ) + (('busy) + ) + (else + (set! (-> obj buf) (logand -64 (&+ (-> obj heap current) 63))) + (set! (-> obj status) 'loaded) + (goto cfg-18) + ) + ) + ) + (('loaded) + (let ((a0-37 (-> obj buf))) + (set! + (-> obj art-group) + (the-as + art-group + (link a0-37 (-> obj load-file data) (-> obj len) (-> obj heap) 0) + ) + ) + ) + (let ((s4-0 (-> obj art-group)) + (s3-0 (-> obj load-file)) + ) + (cond + ((not s4-0) + (format + 0 + "ERROR: art-group ~A part ~D is not a valid file.~%" + s3-0 + (-> obj load-file-part) + ) + (set! (-> obj status) 'error) + ) + ((not (type-type? (-> s4-0 type) art-group)) + (format + 0 + "ERROR: art-group ~A part ~D is not a art-group.~%" + s3-0 + (-> obj load-file-part) + ) + (set! (-> obj status) 'error) + ) + ((not + (file-info-correct-version? (-> s4-0 info) (file-kind art-group) 0) + ) + (set! (-> obj status) 'error) + ) + (else + (dummy-9 s4-0) + (set! (-> obj status) 'locked) + ) + ) + ) + ) + (('locked) + (when (and (not (-> obj locked?)) (begin + (set! v1-54 (-> obj load-file-owner)) + (nonzero? (l32-false-check v1-54)) + ) + (let ((a0-46 (-> v1-54 process 0))) + (if (= (-> v1-54 pid) (-> a0-46 pid)) + a0-46 + ) + ) + ) + (link-file obj (-> obj art-group)) + (set! (-> obj other locked?) #t) + (set! (-> obj status) 'active) + (goto cfg-18) + ) + ) + ) + ) + (else + (case (-> obj status) + (('initialize) + ) + (('reserved) + (cond + ((= (-> *art-control* reserve-buffer) obj) + (set! (-> *art-control* reserve-buffer) #f) + (set! (-> obj status) 'inactive) + ) + (else + (format + 0 + "ERROR: trying tro free ~A when ~A is reserved~%" + obj + (-> *art-control* reserve-buffer) + ) + ) + ) + ) + (('active) + (unlink-file obj (-> obj art-group)) + (let ((v1-70 (-> obj heap))) + (set! (-> v1-70 current) (-> v1-70 base)) + ) + (set! (-> obj art-group) #f) + (set! (-> obj status) 'inactive) + (when (-> obj other locked?) + (unlock! (-> obj other)) + (update (-> obj other)) + ) + ) + (else + (let ((v1-79 (-> obj heap))) + (set! (-> v1-79 current) (-> v1-79 base)) + ) + (set! (-> obj art-group) #f) + (set! (-> obj status) 'inactive) + ) + ) + ) + ) + 0 + ) + +;; definition for symbol *preload-spool-anims*, type symbol +(define *preload-spool-anims* #t) + +;; definition for method 12 of type external-art-control +(defmethod + file-status + external-art-control + ((obj external-art-control) (arg0 string) (arg1 int)) + (dotimes (s3-0 2) + (let ((v1-3 (file-status (-> obj buffer s3-0) arg0 arg1))) + (if v1-3 + (return v1-3) + ) + ) + ) + #f + ) + +;; definition for method 9 of type external-art-control +(defmethod update external-art-control ((obj external-art-control) (arg0 symbol)) + (if (nonzero? (-> obj reserve-buffer-count)) + (spool-push obj "reserved" 0 *dproc* (if (-> obj reserve-buffer) + -110.0 + -0.5 + ) + ) + ) + (dotimes (v1-5 2) + (set! (-> obj buffer v1-5 frame-lock) #f) + ) + (dotimes (v1-8 3) + (set! (-> obj rec v1-8 buf2) #f) + ) + (dotimes (s4-0 2) + (let ((s3-0 (-> obj rec s4-0))) + (when (-> s3-0 name) + (dotimes (s2-0 2) + (when + (and + (file-status (-> obj buffer s2-0) (-> s3-0 name) (-> s3-0 parts)) + (not (-> obj buffer s2-0 frame-lock)) + ) + (set! (-> obj buffer s2-0 frame-lock) #t) + (set! (-> s3-0 buf2) (-> obj buffer s2-0)) + (set! (-> obj buffer s2-0 pending-load-file-owner) (-> s3-0 owner)) + (set! (-> obj buffer s2-0 load-file-owner) (-> s3-0 owner)) + (set! (-> obj buffer s2-0 pending-load-file-priority) (-> s3-0 priority)) + (set! (-> obj buffer s2-0 load-file-priority) (-> s3-0 priority)) + (goto cfg-24) + ) + ) + ) + ) + (label cfg-24) + ) + (dotimes (s4-1 2) + (let ((s3-1 (-> obj rec s4-1))) + (when (and (-> s3-1 name) (not (-> s3-1 buf2))) + (if (and (not *preload-spool-anims*) (>= (-> s3-1 priority) 0.0)) + (goto cfg-46) + ) + (dotimes (s2-1 2) + (when (not (-> obj buffer s2-1 frame-lock)) + (set! (-> obj buffer s2-1 frame-lock) #t) + (want-file + (-> obj buffer s2-1) + (-> s3-1 name) + (-> s3-1 parts) + (-> s3-1 owner) + (-> s3-1 priority) + ) + (set! (-> s3-1 buf2) (-> obj buffer s2-1)) + (goto cfg-46) + ) + ) + ) + ) + (label cfg-46) + ) + (when (not (-> obj reserve-buffer)) + (let ((s4-2 (-> obj rec 0 buf2))) + (if + (and + s4-2 + (-> s4-2 locked?) + (not (string= (-> s4-2 pending-load-file) "reserved")) + (not (string= (-> s4-2 other pending-load-file) "reserved")) + ) + (want-file + (-> s4-2 other) + (the-as string #f) + -1 + (the-as handle #f) + 100000000.0 + ) + ) + ) + ) + (dotimes (s4-3 2) + (update (-> obj buffer s4-3)) + ) + (let ((s4-4 (the-as spool-anim #f))) + (countdown (s3-2 3) + (if + (and + (-> obj rec s3-2 name) + (not (name= (-> obj rec s3-2 name) (-> obj active-stream))) + ) + (set! s4-4 (the-as spool-anim (-> obj rec))) + ) + ) + (if + (and + (-> obj preload-stream name) + (or (not s4-4) (< (-> obj preload-stream priority) (-> s4-4 priority))) + ) + (set! s4-4 (-> obj preload-stream)) + ) + (cond + (s4-4 + (mem-copy! (&-> (-> obj last-preload-stream) type) (&-> s4-4 type) 44) + (str-play-queue (-> s4-4 name)) + ) + (else + (set! (-> obj last-preload-stream name) #f) + (set! (-> obj last-preload-stream owner) (the-as handle #f)) + ) + ) + ) + (when (and arg0 *display-art-control*) + (dotimes (s5-1 3) + (let ((t9-10 format) + (a0-29 *stdcon*) + (a1-9 "rec ~d ~S ~D ~f ~A~%") + (a2-5 s5-1) + (a3-3 (-> obj rec s5-1 name)) + (t0-3 (-> obj rec s5-1 parts)) + (t1-0 (-> obj rec s5-1 priority)) + (v1-123 (handle->process (-> obj rec s5-1 owner))) + ) + (t9-10 a0-29 a1-9 a2-5 a3-3 t0-3 t1-0 (if v1-123 + (-> v1-123 name) + ) + ) + ) + ) + (dotimes (s5-2 2) + (let ((t9-11 format) + (a0-30 *stdcon*) + (a1-10 "buf ~d ~C ~S ~D ~A ~A~%") + (a2-6 s5-2) + (a3-4 (if (-> obj buffer s5-2 locked?) + 108 + 32 + ) + ) + (t0-4 (-> obj buffer s5-2 pending-load-file)) + (t1-1 (-> obj buffer s5-2 pending-load-file-part)) + (t2-5 (-> obj buffer s5-2 status)) + (v1-144 + (handle->process (-> obj buffer s5-2 pending-load-file-owner)) + ) + ) + (t9-11 a0-30 a1-10 a2-6 a3-4 t0-4 t1-1 t2-5 (if v1-144 + (-> v1-144 name) + ) + ) + ) + ) + (format *stdcon* " a: ~S~%" (-> obj active-stream)) + (let ((t9-13 format) + (a0-32 *stdcon*) + (a1-12 " p: ~S ~A~%") + (a2-8 (-> obj preload-stream name)) + (v1-149 (handle->process (-> obj preload-stream owner))) + ) + (t9-13 a0-32 a1-12 a2-8 (if v1-149 + (-> v1-149 name) + ) + ) + ) + (let ((t9-14 format) + (a0-33 *stdcon*) + (a1-13 " q: ~S ~A~%") + (a2-9 (-> obj last-preload-stream name)) + (v1-152 (handle->process (-> obj last-preload-stream owner))) + ) + (t9-14 a0-33 a1-13 a2-9 (if v1-152 + (-> v1-152 name) + ) + ) + ) + ) + 0 + ) + +;; definition for method 15 of type external-art-control +(defmethod none-reserved? external-art-control ((obj external-art-control)) + (zero? (-> obj reserve-buffer-count)) + ) + +;; definition for method 13 of type external-art-control +(defmethod reserve-alloc external-art-control ((obj external-art-control)) + (set! (-> obj reserve-buffer-count) 1) + (if (-> obj reserve-buffer) + (-> obj reserve-buffer heap) + ) + ) + +;; definition for method 14 of type external-art-control +(defmethod + reserve-free + external-art-control + ((obj external-art-control) (arg0 kheap)) + (cond + ((zero? (-> obj reserve-buffer-count)) + (format + 0 + "ERROR: illegal attempt to free a buffer #x~X which had not been reserved (none reserved).~%" + arg0 + ) + ) + ((not (-> obj reserve-buffer)) + (set! (-> obj reserve-buffer-count) 0) + 0 + ) + ((= (-> obj reserve-buffer heap) arg0) + (want-file + (-> obj reserve-buffer) + (the-as string #f) + -1 + (the-as handle #f) + 100000000.0 + ) + (update (-> obj reserve-buffer)) + (set! (-> obj reserve-buffer-count) 0) + 0 + ) + (else + (format + 0 + "ERROR: illegal attempt to free a buffer #x~X which had not been reserved (buffer unknown).~%" + arg0 + ) + ) + ) + 0 + ) + +;; definition for method 10 of type external-art-control +(defmethod clear-rec external-art-control ((obj external-art-control)) + (cond + ((!= *master-mode* 'game) + (dotimes (s5-0 3) + (when (name= (-> obj rec s5-0 name) "reserved") + (let ((v1-5 s5-0)) + (cond + ((zero? v1-5) + (mem-copy! + (&+ (the-as pointer (-> obj rec)) -4) + (&-> (-> obj rec 1) type) + 44 + ) + (mem-copy! (&-> (-> obj rec 1) type) (&-> (-> obj rec 2) type) 44) + ) + ((= v1-5 1) + (mem-copy! (&-> (-> obj rec 1) type) (&-> (-> obj rec 2) type) 44) + ) + ) + ) + (set! (-> obj rec 2 type) spool-anim) + (set! (-> obj rec 2 name) #f) + (set! (-> obj rec 2 priority) 100000000.0) + (set! (-> obj rec 2 owner) (the-as handle #f)) + ) + ) + ) + (else + (dotimes (v1-19 3) + (set! (-> obj rec v1-19 type) spool-anim) + (set! (-> obj rec v1-19 name) #f) + (set! (-> obj rec v1-19 priority) 100000000.0) + (set! (-> obj rec v1-19 owner) (the-as handle #f)) + ) + (set! (-> obj preload-stream type) spool-anim) + (set! (-> obj preload-stream name) #f) + (set! (-> obj preload-stream priority) 100000000.0) + (set! (-> obj preload-stream owner) (the-as handle #f)) + ) + ) + 0 + ) + +;; definition for method 16 of type external-art-control +(defmethod + try-preload-stream + external-art-control + ((obj external-art-control) + (arg0 string) + (arg1 int) + (arg2 process) + (arg3 float) + ) + (when (and (= arg3 -99.0) arg2) + (let ((a0-2 (target-pos 0))) + (set! + arg3 + (vector-vector-distance + a0-2 + (-> (the-as process-drawable arg2) root trans) + ) + ) + ) + ) + (when + (not + (and + (-> obj preload-stream name) + (>= arg3 (-> obj preload-stream priority)) + ) + ) + (set! (-> obj preload-stream name) arg0) + (set! (-> obj preload-stream parts) arg1) + (set! (-> obj preload-stream priority) arg3) + (let ((v1-8 (if arg2 + (-> arg2 ppointer) + ) + ) + ) + (set! + (-> obj preload-stream owner) + (new 'static 'handle + :process v1-8 + :pid (-> (the-as process (-> v1-8 0)) pid) + ) + ) + ) + ) + 0 + ) + +;; definition for method 11 of type external-art-control +(defmethod + spool-push + external-art-control + ((obj external-art-control) + (arg0 string) + (arg1 int) + (arg2 process) + (arg3 float) + ) + (when (and (= arg3 -99.0) arg2) + (let ((a0-2 (target-pos 0))) + (set! + arg3 + (vector-vector-distance + a0-2 + (-> (the-as process-drawable arg2) root trans) + ) + ) + ) + ) + (cond + ((and (= arg1 (-> obj rec 0 parts)) (name= arg0 (-> obj rec 0 name))) + (if (>= arg3 (-> obj rec 0 priority)) + (return (the-as int #f)) + ) + (mem-copy! (&-> (-> obj rec) 0 type) (&-> (-> obj rec 1) type) 44) + (mem-copy! (&-> (-> obj rec 1) type) (&-> (-> obj rec 2) type) 44) + (set! (-> obj rec 2 name) #f) + (set! (-> obj rec 2 owner) (the-as handle #f)) + ) + ((and (= arg1 (-> obj rec 1 parts)) (name= arg0 (-> obj rec 1 name))) + (if (>= arg3 (-> obj rec 1 priority)) + (return (the-as int #f)) + ) + (mem-copy! (&-> (-> obj rec 1) type) (&-> (-> obj rec 2) type) 44) + (set! (-> obj rec 2 name) #f) + (set! (-> obj rec 2 owner) (the-as handle #f)) + ) + ((and (= arg1 (-> obj rec 2 parts)) (name= arg0 (-> obj rec 2 name))) + (if (>= arg3 (-> obj rec 2 priority)) + (return (the-as int #f)) + ) + (set! (-> obj rec 2 name) #f) + (set! (-> obj rec 2 owner) (the-as handle #f)) + ) + ) + (cond + ((< arg3 (-> obj rec 0 priority)) + (mem-copy! (&-> (-> obj rec 2) type) (&-> (-> obj rec 1) type) 44) + (mem-copy! (&-> (-> obj rec 1) type) (&-> (-> obj rec) 0 type) 44) + (set! (-> obj rec 0 name) arg0) + (set! (-> obj rec 0 parts) arg1) + (set! (-> obj rec 0 priority) arg3) + (let ((v1-34 (if arg2 + (-> arg2 ppointer) + ) + ) + ) + (set! + (-> obj rec 0 owner) + (new 'static 'handle + :process v1-34 + :pid (-> (the-as process (-> v1-34 0)) pid) + ) + ) + ) + ) + ((< arg3 (-> obj rec 1 priority)) + (mem-copy! (&-> (-> obj rec 2) type) (&-> (-> obj rec 1) type) 44) + (set! (-> obj rec 1 name) arg0) + (set! (-> obj rec 1 parts) arg1) + (set! (-> obj rec 1 priority) arg3) + (let* ((a0-18 arg2) + (v1-40 (if a0-18 + (-> a0-18 ppointer) + ) + ) + ) + (set! + (-> obj rec 1 owner) + (new 'static 'handle + :process v1-40 + :pid (-> (the-as process (-> v1-40 0)) pid) + ) + ) + ) + ) + ((< arg3 (-> obj rec 2 priority)) + (set! (-> obj rec 2 name) arg0) + (set! (-> obj rec 2 parts) arg1) + (set! (-> obj rec 2 priority) arg3) + (let* ((a0-22 arg2) + (v1-44 (if a0-22 + (-> a0-22 ppointer) + ) + ) + ) + (set! + (-> obj rec 2 owner) + (new 'static 'handle + :process v1-44 + :pid (-> (the-as process (-> v1-44 0)) pid) + ) + ) + ) + ) + ) + 0 + ) + +;; definition for function ja-play-spooled-anim +;; WARN: Stack slot offset 24 signed mismatch +;; WARN: Stack slot offset 24 signed mismatch +;; WARN: Stack slot offset 24 signed mismatch +;; WARN: Stack slot offset 24 signed mismatch +;; WARN: Stack slot offset 24 signed mismatch +(defbehavior + ja-play-spooled-anim process-drawable + ((arg0 spool-anim) + (arg1 art-joint-anim) + (arg2 art-joint-anim) + (arg3 (function process-drawable symbol)) + ) + (local-vars + (spool-part int) + (sv-24 float) + (old-skel-status uint) + (sv-32 int) + (sv-40 int) + (sv-48 int) + (sv-56 int) + (spool-sound sound-id) + (sv-72 int) + ) + (set! spool-part 0) + (set! sv-24 -17.0) + (set! old-skel-status (-> self skel status)) + (set! sv-32 -2) + (set! sv-40 0) + (set! sv-48 0) + (set! sv-56 0) + (set! spool-sound (new-sound-id)) + (dummy-17 *load-state* (-> arg0 command-list)) + (let* ((a0-2 *setting-control*) + (t9-2 (method-of-object a0-2 set-setting!)) + (a1-2 self) + (a2-1 'spooling) + (v1-6 self) + ) + (t9-2 a0-2 a1-2 a2-1 (the-as symbol (if v1-6 + (-> v1-6 ppointer) + ) + ) + 0.0 0 + ) + ) + (set! (-> self skel status) (logior (-> self skel status) 7)) + (kill-current-level-hint '() '() 'die) + (level-hint-surpress!) + (copy-settings-from-target! *setting-control*) + (when + (or (handle->process (-> *art-control* spool-lock)) (!= *master-mode* 'game)) + (cond + (arg1 + (when (!= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + arg1 + ) + (ja-channel-push! 1 15) + (let ((s2-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! s2-0 arg1 num-func-identity) + (set! (-> s2-0 frame-num) 0.0) + ) + ) + ) + (else + (ja-channel-set! 0) + ) + ) + (while + (or + (handle->process (-> *art-control* spool-lock)) + (!= *master-mode* 'game) + ) + (format #t "WARNING: ---------------------> loader stall on lock~%") + (if (arg3 self) + (goto cfg-88) + ) + (let* ((a0-16 *art-control*) + (t9-11 (method-of-object a0-16 spool-push)) + (a1-8 (-> arg0 name)) + (a2-4 spool-part) + (t0-1 -9.0) + ) + (t9-11 a0-16 a1-8 a2-4 self t0-1) + ) + (suspend) + (when arg1 + (let ((a0-17 (-> self skel root-channel 0))) + (set! (-> a0-17 param 0) 1.0) + (joint-control-channel-group-eval! + a0-17 + (the-as art-joint-anim #f) + num-func-loop! + ) + ) + ) + ) + ) + (let ((v1-46 (if self + (-> self ppointer) + ) + ) + ) + (set! + (-> *art-control* spool-lock) + (new 'static 'handle + :process v1-46 + :pid (-> (the-as process (-> v1-46 0)) pid) + ) + ) + ) + (set! sv-48 (the-as int (-> *display* base-frame-counter))) + (while (< spool-part (-> arg0 parts)) + (let* ((a0-27 *art-control*) + (t9-13 (method-of-object a0-27 spool-push)) + (a1-11 (-> arg0 name)) + (a2-6 spool-part) + (t0-2 -20.0) + ) + (t9-13 a0-27 a1-11 a2-6 self t0-2) + ) + (update *art-control* #f) + (let* ((a0-29 *art-control*) + (t9-15 (method-of-object a0-29 spool-push)) + (a1-13 (-> arg0 name)) + (a2-7 spool-part) + (t0-3 -20.0) + ) + (t9-15 a0-29 a1-13 a2-7 self t0-3) + ) + (when (!= (file-status *art-control* (-> arg0 name) spool-part) 'active) + (cond + (arg1 + (when (!= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + arg1 + ) + (ja-channel-set! 1) + (let ((s2-2 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! s2-2 arg1 num-func-identity) + (set! (-> s2-2 frame-num) 0.0) + ) + ) + ) + (else + (ja-channel-set! 0) + ) + ) + (while (!= (file-status *art-control* (-> arg0 name) spool-part) 'active) + (if (arg3 self) + (goto cfg-88) + ) + (let* ((a0-35 *art-control*) + (t9-21 (method-of-object a0-35 spool-push)) + (a1-16 (-> arg0 name)) + (a2-10 spool-part) + (t0-4 -20.0) + ) + (t9-21 a0-35 a1-16 a2-10 self t0-4) + ) + (format + #t + "WARNING: ---------------------> loader stall on art ~S ~D~%" + (-> arg0 name) + spool-part + ) + (suspend) + (when arg1 + (let ((a0-37 (-> self skel root-channel 0))) + (set! (-> a0-37 param 0) 1.0) + (joint-control-channel-group-eval! + a0-37 + (the-as art-joint-anim #f) + num-func-loop! + ) + ) + ) + ) + ) + (let* ((a0-39 *art-control*) + (t9-25 (method-of-object a0-39 spool-push)) + (a1-20 (-> arg0 name)) + (a2-14 spool-part) + (t0-5 -20.0) + ) + (t9-25 a0-39 a1-20 a2-14 self t0-5) + ) + (let + ((s2-4 + (the-as + art-joint-anim + (dummy-10 (-> self draw art-group) (-> arg0 name) art-joint-anim) + ) + ) + ) + (cond + (s2-4 + (ja-channel-set! 1) + (let ((a0-42 (-> self skel root-channel 0))) + (set! (-> a0-42 frame-group) s2-4) + (set! (-> a0-42 param 0) (the float (+ (-> s2-4 data 0 length) -1))) + (set! (-> a0-42 param 1) 1.0) + (set! (-> a0-42 frame-num) 0.0) + (joint-control-channel-group! a0-42 s2-4 num-func-seek!) + ) + (when (zero? spool-part) + (str-play-async (-> arg0 name) spool-sound) + (set! (-> *art-control* active-stream) (-> arg0 name)) + ) + (let* ((f30-0 (* 0.05859375 (-> s2-4 speed))) + (f28-0 + (+ sv-24 (/ (the float (+ (-> s2-4 data 0 length) -1)) f30-0)) + ) + ) + (set! sv-72 (current-str-pos spool-sound)) + (set! sv-40 (the-as int (-> *display* base-frame-counter))) + (until (begin + (let* ((a0-55 *art-control*) + (t9-32 (method-of-object a0-55 spool-push)) + (a1-24 (-> arg0 name)) + (a2-17 spool-part) + (t0-6 -20.0) + ) + (t9-32 a0-55 a1-24 a2-17 self t0-6) + ) + (cond + ((< (+ spool-part 1) (-> arg0 parts)) + (let* ((a0-57 *art-control*) + (t9-33 (method-of-object a0-57 spool-push)) + (a1-25 (-> arg0 name)) + (a2-18 (+ spool-part 1)) + (t0-7 -10.0) + ) + (t9-33 a0-57 a1-25 a2-18 self t0-7) + ) + ) + (else + (set! + (-> self skel status) + (logand -5 (the-as int (-> self skel status))) + ) + ) + ) + (dummy-16 *load-state* (ja-aframe-num 0)) + (cond + ((and (< sv-32 sv-72) (= (current-str-id) spool-sound)) + (set! + sv-56 + (+ + sv-56 + (the-as + int + (- + (-> *display* base-frame-counter) + (-> *display* old-base-frame-counter) + ) + ) + ) + ) + (set! sv-40 (the-as int (-> *display* base-frame-counter))) + ) + (else + 0 + ) + ) + (set! sv-32 sv-72) + (set! sv-48 (the-as int (-> *display* base-frame-counter))) + (suspend) + (let + ((f0-14 + (* (- (the float (current-str-pos spool-sound)) sv-24) f30-0) + ) + (a0-69 (-> self skel root-channel 0)) + ) + (set! + (-> a0-69 param 0) + (the float (+ (-> a0-69 frame-group data 0 length) -1)) + ) + (set! (-> a0-69 param 1) 1.0) + (set! (-> a0-69 frame-num) f0-14) + (joint-control-channel-group! + a0-69 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + (let ((v0-39 (current-str-pos spool-sound))) + (set! sv-72 v0-39) + (>= (the float v0-39) f28-0) + ) + ) + (if (= (-> self skel root-channel 0) (-> self skel channel)) + (set! (-> self skel status) (logior (-> self skel status) 32)) + ) + (if + (or + (arg3 self) + (and + (<= sv-72 0) + (>= (the-as int (- (-> *display* base-frame-counter) sv-40)) 1200) + ) + (and (< 300 sv-56) (<= sv-72 0)) + ) + (goto cfg-88) + ) + ) + (set! sv-24 f28-0) + ) + (set! + (-> self skel status) + (logand -33 (the-as int (-> self skel status))) + ) + ) + (else + (format + 0 + "ERROR: ~A in spool anim loop for ~A ~D, but not loaded.~" + self + (-> arg0 name) + spool-part + ) + (goto cfg-88) + ) + ) + ) + (set! spool-part (+ spool-part 1)) + ) + (set! spool-part (+ spool-part -1)) + (label cfg-88) + (ja-abort-spooled-anim arg0 arg2 spool-part) + 0 + ) + +;; definition for function ja-abort-spooled-anim +(defbehavior + ja-abort-spooled-anim process-drawable + ((arg0 spool-anim) (arg1 art-joint-anim) (arg2 int)) + (dummy-18 *load-state*) + (str-play-stop (-> arg0 name)) + (set! (-> *art-control* active-stream) #f) + (set! (-> self skel status) (logand -7 (the-as int (-> self skel status)))) + (if (zero? (logand (-> self skel status) 1)) + (set! (-> self skel status) (logand -2 (the-as int (-> self skel status)))) + ) + (clear-pending-settings-from-process *setting-control* self 'spooling) + (cond + ((and arg1 (>= arg2 0)) + (ja-channel-push! 1 30) + (set! (-> self skel root-channel 0 frame-group) arg1) + (while (!= (-> self skel root-channel 0) (-> self skel channel)) + (let* ((a0-11 *art-control*) + (t9-4 (method-of-object a0-11 spool-push)) + (a1-3 (-> arg0 name)) + (a2-2 arg2) + (t0-0 -20.0) + ) + (t9-4 a0-11 a1-3 a2-2 self t0-0) + ) + (suspend) + (let ((a0-12 (-> self skel root-channel 0))) + (set! + (-> a0-12 param 0) + (the float (+ (-> a0-12 frame-group data 0 length) -1)) + ) + (set! (-> a0-12 param 1) 1.0) + (joint-control-channel-group-eval! + a0-12 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + (else + (ja-channel-set! 0) + ) + ) + (set! (-> *art-control* spool-lock) (the-as handle #f)) + 0 + ) + +;; failed to figure out what this is: +(if (zero? *art-control*) + (set! *art-control* (new 'global 'external-art-control)) + ) diff --git a/test/decompiler/reference/engine/sound/gsound_REF.gc b/test/decompiler/reference/engine/sound/gsound_REF.gc index b740b9e99a..276015164c 100644 --- a/test/decompiler/reference/engine/sound/gsound_REF.gc +++ b/test/decompiler/reference/engine/sound/gsound_REF.gc @@ -20,20 +20,20 @@ ;; definition of type sound-iop-info (deftype sound-iop-info (basic) - ((frame uint32 :offset 16) - (strpos int32 :offset-assert 20) - (str-id uint32 :offset-assert 24) - (str-id-sign int32 :offset 24) - (freemem uint32 :offset-assert 28) - (chinfo uint8 48 :offset-assert 32) - (freemem2 uint32 :offset-assert 80) - (nocd uint32 :offset-assert 84) - (dirtycd uint32 :offset-assert 88) - (diskspeed uint32 2 :offset-assert 92) - (lastspeed uint32 :offset-assert 100) - (dupseg int32 :offset-assert 104) - (times uint32 41 :offset-assert 108) - (times-seq uint32 :offset-assert 272) + ((frame uint32 :offset 16) + (strpos int32 :offset-assert 20) + (str-id sound-id :offset-assert 24) + (str-id-sign int32 :offset 24) + (freemem uint32 :offset-assert 28) + (chinfo uint8 48 :offset-assert 32) + (freemem2 uint32 :offset-assert 80) + (nocd uint32 :offset-assert 84) + (dirtycd uint32 :offset-assert 88) + (diskspeed uint32 2 :offset-assert 92) + (lastspeed uint32 :offset-assert 100) + (dupseg int32 :offset-assert 104) + (times uint32 41 :offset-assert 108) + (times-seq uint32 :offset-assert 272) ) :method-count-assert 9 :size-assert #x114 @@ -69,12 +69,13 @@ ) ;; definition for function current-str-id +;; INFO: Return type mismatch int vs sound-id. (defun current-str-id () - (-> *sound-iop-info* str-id-sign) + (the-as sound-id (-> *sound-iop-info* str-id-sign)) ) ;; definition for function current-str-pos -(defun current-str-pos ((arg0 int)) +(defun current-str-pos ((arg0 sound-id)) (let ((v0-0 -1)) (if (= arg0 (-> *sound-iop-info* str-id)) (set! v0-0 (-> *sound-iop-info* strpos)) diff --git a/test/decompiler/reference/engine/target/target-h_REF.gc b/test/decompiler/reference/engine/target/target-h_REF.gc index 5903a04d3f..a6adf61f1b 100644 --- a/test/decompiler/reference/engine/target/target-h_REF.gc +++ b/test/decompiler/reference/engine/target/target-h_REF.gc @@ -80,7 +80,7 @@ (deftype sidekick (process-drawable) ((control control-info :offset 112) (anim-seed uint64 :offset 192) - (shadow-in-movie? basic :offset-assert 200) + (shadow-in-movie? symbol :offset-assert 200) ) :heap-base #x60 :method-count-assert 20 diff --git a/test/decompiler/reference/kernel/gkernel-h_REF.gc b/test/decompiler/reference/kernel/gkernel-h_REF.gc index 469dc48f19..57535c360b 100644 --- a/test/decompiler/reference/kernel/gkernel-h_REF.gc +++ b/test/decompiler/reference/kernel/gkernel-h_REF.gc @@ -8,12 +8,12 @@ (allow-to-run process-mask :offset-assert 12) (next-pid int32 :offset-assert 16) (fast-stack-top pointer :offset-assert 20) - (current-process basic :offset-assert 24) + (current-process process :offset-assert 24) (relocating-process basic :offset-assert 28) (relocating-min int32 :offset-assert 32) (relocating-max int32 :offset-assert 36) (relocating-offset int32 :offset-assert 40) - (low-memory-message basic :offset-assert 44) + (low-memory-message symbol :offset-assert 44) ) :method-count-assert 9 :size-assert #x30 @@ -304,13 +304,13 @@ (trans (function object) :offset-assert 20) (post function :offset-assert 24) (enter (function object object object object object object object) :offset-assert 28) - (event (function basic int basic event-message-block object) :offset-assert 32) + (event (function process int symbol event-message-block object) :offset-assert 32) ) :method-count-assert 9 :size-assert #x24 :flag-assert #x900000024 (:methods - (new (symbol type basic function (function object) (function object object object object object object object) (function object) (function basic int basic event-message-block object)) _type_ 0) + (new (symbol type basic function (function object) (function object object object object object object object) (function object) (function process int symbol event-message-block object)) _type_ 0) ) ) @@ -330,11 +330,11 @@ ;; definition of type event-message-block (deftype event-message-block (structure) - ((to basic :offset-assert 0) - (from basic :offset-assert 4) - (num-params int32 :offset-assert 8) - (message basic :offset-assert 12) - (param uint64 7 :offset-assert 16) + ((to process :offset-assert 0) + (from process :offset-assert 4) + (num-params int32 :offset-assert 8) + (message symbol :offset-assert 12) + (param uint64 7 :offset-assert 16) ) :method-count-assert 9 :size-assert #x48 diff --git a/test/decompiler/reference/kernel/gstate_REF.gc b/test/decompiler/reference/kernel/gstate_REF.gc index 0215c62611..2f193edaf3 100644 --- a/test/decompiler/reference/kernel/gstate_REF.gc +++ b/test/decompiler/reference/kernel/gstate_REF.gc @@ -12,7 +12,7 @@ (trans (function object)) (enter (function object object object object object object object)) (exit (function object)) - (event (function basic int basic event-message-block object)) + (event (function process int symbol event-message-block object)) ) (let ((obj diff --git a/test/goalc/source_templates/with_game/test-fancy-static-fields.gc b/test/goalc/source_templates/with_game/test-fancy-static-fields.gc index 10e92b07e5..7e7bb7e845 100644 --- a/test/goalc/source_templates/with_game/test-fancy-static-fields.gc +++ b/test/goalc/source_templates/with_game/test-fancy-static-fields.gc @@ -21,11 +21,11 @@ :name "name" :bf (new 'static 'basic-field-test-bitfield :f1 1 :f3 1) :kc (new 'static 'kernel-context :next-pid 12) - :kci (new 'static 'kernel-context :current-process 'asdf :relocating-min 33)))) + :kci (new 'static 'kernel-context :low-memory-message 'asdf :relocating-min 33)))) (format #t "~A ~D ~f ~A ~D" (-> obj name) (-> obj kc next-pid) (-> obj pos) (-> obj list) (-> obj bf)) (format #t " ~D ~D ~A ~A~%" (-> obj kci relocating-min) (logand 15 (the int (-> obj kci))) (-> obj kci type) - (-> obj kci current-process)) + (-> obj kci low-memory-message)) ) \ No newline at end of file diff --git a/test/offline/offline_test_main.cpp b/test/offline/offline_test_main.cpp index 882d3d931d..ebdc133878 100644 --- a/test/offline/offline_test_main.cpp +++ b/test/offline/offline_test_main.cpp @@ -151,7 +151,10 @@ const std::unordered_set g_functions_to_skip_compiling = { "get-task-status", // aligner - return-from-thread, currently not supported - "(method 9 align-control)"}; + "(method 9 align-control)", + + // loader - decompiler bug with detecting handle macros + "(method 10 external-art-buffer)"}; // default location for the data. It can be changed with a command line argument. std::string g_iso_data_path = ""; From 7632b90a17bbdfe4d006540d847c86228244259a Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 23 Jul 2021 22:32:11 +0000 Subject: [PATCH 23/57] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/about.1ae0a652.js | 2 ++ docs/js/about.1ae0a652.js.map | 1 + docs/js/about.3506395f.js | 2 -- docs/js/about.3506395f.js.map | 1 - docs/js/{app.a68fab1a.js => app.2883824b.js} | 4 ++-- docs/js/{app.a68fab1a.js.map => app.2883824b.js.map} | 2 +- .../{chunk-vendors.492c07dc.js => chunk-vendors.1146ead9.js} | 4 ++-- docs/js/chunk-vendors.1146ead9.js.map | 1 + docs/js/chunk-vendors.492c07dc.js.map | 1 - 11 files changed, 11 insertions(+), 11 deletions(-) create mode 100644 docs/js/about.1ae0a652.js create mode 100644 docs/js/about.1ae0a652.js.map delete mode 100644 docs/js/about.3506395f.js delete mode 100644 docs/js/about.3506395f.js.map rename docs/js/{app.a68fab1a.js => app.2883824b.js} (97%) rename docs/js/{app.a68fab1a.js.map => app.2883824b.js.map} (98%) rename docs/js/{chunk-vendors.492c07dc.js => chunk-vendors.1146ead9.js} (99%) create mode 100644 docs/js/chunk-vendors.1146ead9.js.map delete mode 100644 docs/js/chunk-vendors.492c07dc.js.map diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index dc88a446cd..d0ce812962 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 107272, + "value": 107859, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index c3cc716780..ee11c79843 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.1ae0a652.js b/docs/js/about.1ae0a652.js new file mode 100644 index 0000000000..f8020ff8dd --- /dev/null +++ b/docs/js/about.1ae0a652.js @@ -0,0 +1,2 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};c(y,a,(function(){return this}));var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){"object"===typeof globalThis?globalThis.regeneratorRuntime=i:Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107859,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.1ae0a652.js.map \ No newline at end of file diff --git a/docs/js/about.1ae0a652.js.map b/docs/js/about.1ae0a652.js.map new file mode 100644 index 0000000000..28a0fe012e --- /dev/null +++ b/docs/js/about.1ae0a652.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?4723","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.1ae0a652.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/about.3506395f.js b/docs/js/about.3506395f.js deleted file mode 100644 index 216cdd5445..0000000000 --- a/docs/js/about.3506395f.js +++ /dev/null @@ -1,2 +0,0 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107272,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.3506395f.js.map \ No newline at end of file diff --git a/docs/js/about.3506395f.js.map b/docs/js/about.3506395f.js.map deleted file mode 100644 index f427544fff..0000000000 --- a/docs/js/about.3506395f.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?963a","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.3506395f.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.a68fab1a.js b/docs/js/app.2883824b.js similarity index 97% rename from docs/js/app.a68fab1a.js rename to docs/js/app.2883824b.js index 779982dd10..28ed443f9a 100644 --- a/docs/js/app.a68fab1a.js +++ b/docs/js/app.2883824b.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?4cd3","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAGnBC,EAAqB,CACxB,IAAO,GAMJjB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASa,EAAe7B,GACvB,OAAOyB,EAAoBK,EAAI,OAAS,CAAC,MAAQ,SAAS9B,IAAUA,GAAW,IAAM,CAAC,MAAQ,YAAYA,GAAW,MAItH,SAASyB,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAUgC,QAGnC,IAAIC,EAASL,EAAiB5B,GAAY,CACzCK,EAAGL,EACHkC,GAAG,EACHF,QAAS,IAUV,OANAlB,EAAQd,GAAUW,KAAKsB,EAAOD,QAASC,EAAQA,EAAOD,QAASN,GAG/DO,EAAOC,GAAI,EAGJD,EAAOD,QAKfN,EAAoBS,EAAI,SAAuBlC,GAC9C,IAAImC,EAAW,GAIXC,EAAY,CAAC,MAAQ,GACtBR,EAAmB5B,GAAUmC,EAASvB,KAAKgB,EAAmB5B,IACzB,IAAhC4B,EAAmB5B,IAAkBoC,EAAUpC,IACtDmC,EAASvB,KAAKgB,EAAmB5B,GAAW,IAAIqC,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,EAAO,QAAU,CAAC,MAAQ,SAASxC,IAAUA,GAAW,IAAM,CAAC,MAAQ,YAAYA,GAAW,OAC9FyC,EAAWhB,EAAoBK,EAAIU,EACnCE,EAAmBC,SAASC,qBAAqB,QAC7CxC,EAAI,EAAGA,EAAIsC,EAAiBpC,OAAQF,IAAK,CAChD,IAAIyC,EAAMH,EAAiBtC,GACvB0C,EAAWD,EAAIE,aAAa,cAAgBF,EAAIE,aAAa,QACjE,GAAe,eAAZF,EAAIG,MAAyBF,IAAaN,GAAQM,IAAaL,GAAW,OAAOH,IAErF,IAAIW,EAAoBN,SAASC,qBAAqB,SACtD,IAAQxC,EAAI,EAAGA,EAAI6C,EAAkB3C,OAAQF,IAAK,CAC7CyC,EAAMI,EAAkB7C,GACxB0C,EAAWD,EAAIE,aAAa,aAChC,GAAGD,IAAaN,GAAQM,IAAaL,EAAU,OAAOH,IAEvD,IAAIY,EAAUP,SAASQ,cAAc,QACrCD,EAAQF,IAAM,aACdE,EAAQE,KAAO,WACfF,EAAQG,OAASf,EACjBY,EAAQI,QAAU,SAASC,GAC1B,IAAIC,EAAUD,GAASA,EAAME,QAAUF,EAAME,OAAOC,KAAOjB,EACvDkB,EAAM,IAAIC,MAAM,qBAAuB5D,EAAU,cAAgBwD,EAAU,KAC/EG,EAAIE,KAAO,wBACXF,EAAIH,QAAUA,SACP5B,EAAmB5B,GAC1BkD,EAAQY,WAAWC,YAAYb,GAC/BX,EAAOoB,IAERT,EAAQV,KAAOC,EAEf,IAAIuB,EAAOrB,SAASC,qBAAqB,QAAQ,GACjDoB,EAAKC,YAAYf,MACfgB,MAAK,WACPtC,EAAmB5B,GAAW,MAMhC,IAAImE,EAAqBxD,EAAgBX,GACzC,GAA0B,IAAvBmE,EAGF,GAAGA,EACFhC,EAASvB,KAAKuD,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAI/B,SAAQ,SAASC,EAASC,GAC3C4B,EAAqBxD,EAAgBX,GAAW,CAACsC,EAASC,MAE3DJ,EAASvB,KAAKuD,EAAmB,GAAKC,GAGtC,IACIC,EADAC,EAAS3B,SAASQ,cAAc,UAGpCmB,EAAOC,QAAU,QACjBD,EAAOE,QAAU,IACb/C,EAAoBgD,IACvBH,EAAOI,aAAa,QAASjD,EAAoBgD,IAElDH,EAAOZ,IAAM7B,EAAe7B,GAG5B,IAAI2E,EAAQ,IAAIf,MAChBS,EAAmB,SAAUd,GAE5Be,EAAOhB,QAAUgB,EAAOjB,OAAS,KACjCuB,aAAaJ,GACb,IAAIK,EAAQlE,EAAgBX,GAC5B,GAAa,IAAV6E,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYvB,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChE2B,EAAUxB,GAASA,EAAME,QAAUF,EAAME,OAAOC,IACpDiB,EAAMK,QAAU,iBAAmBhF,EAAU,cAAgB8E,EAAY,KAAOC,EAAU,IAC1FJ,EAAMM,KAAO,iBACbN,EAAMvB,KAAO0B,EACbH,EAAMnB,QAAUuB,EAChBF,EAAM,GAAGF,GAEVhE,EAAgBX,QAAWkF,IAG7B,IAAIV,EAAUW,YAAW,WACxBd,EAAiB,CAAEjB,KAAM,UAAWK,OAAQa,MAC1C,MACHA,EAAOhB,QAAUgB,EAAOjB,OAASgB,EACjC1B,SAASqB,KAAKC,YAAYK,GAG5B,OAAOjC,QAAQ+C,IAAIjD,IAIpBV,EAAoB4D,EAAIxE,EAGxBY,EAAoB6D,EAAI3D,EAGxBF,EAAoB8D,EAAI,SAASxD,EAASkD,EAAMO,GAC3C/D,EAAoBgE,EAAE1D,EAASkD,IAClC1E,OAAOmF,eAAe3D,EAASkD,EAAM,CAAEU,YAAY,EAAMC,IAAKJ,KAKhE/D,EAAoBoE,EAAI,SAAS9D,GACX,qBAAX+D,QAA0BA,OAAOC,aAC1CxF,OAAOmF,eAAe3D,EAAS+D,OAAOC,YAAa,CAAEC,MAAO,WAE7DzF,OAAOmF,eAAe3D,EAAS,aAAc,CAAEiE,OAAO,KAQvDvE,EAAoBwE,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQvE,EAAoBuE,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK7F,OAAO8F,OAAO,MAGvB,GAFA5E,EAAoBoE,EAAEO,GACtB7F,OAAOmF,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOvE,EAAoB8D,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR3E,EAAoB+E,EAAI,SAASxE,GAChC,IAAIwD,EAASxD,GAAUA,EAAOmE,WAC7B,WAAwB,OAAOnE,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAP,EAAoB8D,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR/D,EAAoBgE,EAAI,SAASgB,EAAQC,GAAY,OAAOnG,OAAOC,UAAUC,eAAeC,KAAK+F,EAAQC,IAGzGjF,EAAoBK,EAAI,gBAGxBL,EAAoBkF,GAAK,SAAShD,GAA2B,MAApBiD,QAAQjC,MAAMhB,GAAYA,GAEnE,IAAIkD,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAWjG,KAAK2F,KAAKM,GAC5CA,EAAWjG,KAAOf,EAClBgH,EAAaA,EAAWG,QACxB,IAAI,IAAI5G,EAAI,EAAGA,EAAIyG,EAAWvG,OAAQF,IAAKP,EAAqBgH,EAAWzG,IAC3E,IAAIU,EAAsBiG,EAI1B/F,EAAgBJ,KAAK,CAAC,EAAE,kBAEjBM,K,4IC1QL,EAAS,WAAa,IAAI+F,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACA,EAAG,SAAS,CAACA,EAAG,gBAAgB,IAAI,IAC5IE,EAAkB,GCQtB,GACEtC,KAAM,MACNuC,WAAY,GACZ1H,KAAM,WAAR,WCZ8T,I,yDCO1T2H,EAAY,eACd,EACA,EACAF,GACA,EACA,KACA,KACA,MAIa,EAAAE,EAAiB,QAMhC,IAAkBA,EAAW,CAACC,OAAA,KAAKC,QAAA,O,gBCrBnCC,OAAIC,IAAIC,QAEO,UAAIA,OAAQ,CACzBC,MAAO,CAAEC,MAAM,K,4CCHjBJ,OAAIC,IAAII,QAER,IAAMC,EAAS,CACb,CACEC,KAAM,IACNlD,KAAM,OACNwC,UAAW,kBAAM,0CAIfW,EAAS,IAAIH,OAAU,CAC3B/B,KAAM,UACNmC,KAAMC,gBACNJ,WAGaE,ICdfR,OAAIW,OAAOC,eAAgB,EAE3B,IAAIZ,OAAI,CACNa,UACAL,SACAM,OAAQ,SAAAC,GAAC,OAAIA,EAAEC,MACdC,OAAO","file":"js/app.2883824b.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"1ae0a652\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/chunk-vendors.492c07dc.js b/docs/js/chunk-vendors.1146ead9.js similarity index 99% rename from docs/js/chunk-vendors.492c07dc.js rename to docs/js/chunk-vendors.1146ead9.js index abc4300405..3748e81823 100644 --- a/docs/js/chunk-vendors.492c07dc.js +++ b/docs/js/chunk-vendors.1146ead9.js @@ -9,5 +9,5 @@ var n=Object.freeze({});function r(t){return void 0===t||null===t}function o(t){ * vue-router v3.5.2 * (c) 2021 Evan You * @license MIT - */function r(t,e){0}function o(t,e){for(var n in e)t[n]=e[n];return t}var i=/[!'()*]/g,a=function(t){return"%"+t.charCodeAt(0).toString(16)},c=/%2C/g,s=function(t){return encodeURIComponent(t).replace(i,a).replace(c,",")};function u(t){try{return decodeURIComponent(t)}catch(e){0}return t}function f(t,e,n){void 0===e&&(e={});var r,o=n||p;try{r=o(t||"")}catch(c){r={}}for(var i in e){var a=e[i];r[i]=Array.isArray(a)?a.map(l):l(a)}return r}var l=function(t){return null==t||"object"===typeof t?t:String(t)};function p(t){var e={};return t=t.trim().replace(/^(\?|#|&)/,""),t?(t.split("&").forEach((function(t){var n=t.replace(/\+/g," ").split("="),r=u(n.shift()),o=n.length>0?u(n.join("=")):null;void 0===e[r]?e[r]=o:Array.isArray(e[r])?e[r].push(o):e[r]=[e[r],o]})),e):e}function d(t){var e=t?Object.keys(t).map((function(e){var n=t[e];if(void 0===n)return"";if(null===n)return s(e);if(Array.isArray(n)){var r=[];return n.forEach((function(t){void 0!==t&&(null===t?r.push(s(e)):r.push(s(e)+"="+s(t)))})),r.join("&")}return s(e)+"="+s(n)})).filter((function(t){return t.length>0})).join("&"):null;return e?"?"+e:""}var h=/\/?$/;function v(t,e,n,r){var o=r&&r.options.stringifyQuery,i=e.query||{};try{i=y(i)}catch(c){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:i,params:e.params||{},fullPath:b(e,o),matched:t?g(t):[]};return n&&(a.redirectedFrom=b(n,o)),Object.freeze(a)}function y(t){if(Array.isArray(t))return t.map(y);if(t&&"object"===typeof t){var e={};for(var n in t)e[n]=y(t[n]);return e}return t}var m=v(null,{path:"/"});function g(t){var e=[];while(t)e.unshift(t),t=t.parent;return e}function b(t,e){var n=t.path,r=t.query;void 0===r&&(r={});var o=t.hash;void 0===o&&(o="");var i=e||d;return(n||"/")+i(r)+o}function w(t,e,n){return e===m?t===e:!!e&&(t.path&&e.path?t.path.replace(h,"")===e.path.replace(h,"")&&(n||t.hash===e.hash&&x(t.query,e.query)):!(!t.name||!e.name)&&(t.name===e.name&&(n||t.hash===e.hash&&x(t.query,e.query)&&x(t.params,e.params))))}function x(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var n=Object.keys(t).sort(),r=Object.keys(e).sort();return n.length===r.length&&n.every((function(n,o){var i=t[n],a=r[o];if(a!==n)return!1;var c=e[n];return null==i||null==c?i===c:"object"===typeof i&&"object"===typeof c?x(i,c):String(i)===String(c)}))}function _(t,e){return 0===t.path.replace(h,"/").indexOf(e.path.replace(h,"/"))&&(!e.hash||t.hash===e.hash)&&O(t.query,e.query)}function O(t,e){for(var n in e)if(!(n in t))return!1;return!0}function k(t){for(var e=0;e=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}function E(t){return t.replace(/\/\//g,"/")}var $=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},T=Y,M=D,P=F,I=B,R=Q,N=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function D(t,e){var n,r=[],o=0,i=0,a="",c=e&&e.delimiter||"/";while(null!=(n=N.exec(t))){var s=n[0],u=n[1],f=n.index;if(a+=t.slice(i,f),i=f+s.length,u)a+=u[1];else{var l=t[i],p=n[2],d=n[3],h=n[4],v=n[5],y=n[6],m=n[7];a&&(r.push(a),a="");var g=null!=p&&null!=l&&l!==p,b="+"===y||"*"===y,w="?"===y||"*"===y,x=n[2]||c,_=h||v;r.push({name:d||o++,prefix:p||"",delimiter:x,optional:w,repeat:b,partial:g,asterisk:!!m,pattern:_?z(_):m?".*":"[^"+U(x)+"]+?"})}}return i1||!k.length)return 0===k.length?t():t("span",{},k)}if("a"===this.tag)O.on=x,O.attrs={href:s,"aria-current":g};else{var C=ct(this.$slots.default);if(C){C.isStatic=!1;var S=C.data=o({},C.data);for(var A in S.on=S.on||{},S.on){var L=S.on[A];A in x&&(S.on[A]=Array.isArray(L)?L:[L])}for(var j in x)j in S.on?S.on[j].push(x[j]):S.on[j]=b;var E=C.data.attrs=o({},C.data.attrs);E.href=s,E["aria-current"]=g}else O.on=x}return t(this.tag,O,this.$slots.default)}};function at(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&!t.defaultPrevented&&(void 0===t.button||0===t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function ct(t){if(t)for(var e,n=0;n-1&&(c.params[l]=n.params[l]);return c.path=J(u.path,c.params,'named route "'+s+'"'),p(u,c,a)}if(c.path){c.params={};for(var d=0;d=t.length?n():t[o]?e(t[o],(function(){r(o+1)})):r(o+1)};r(0)}var Ft={redirected:2,aborted:4,cancelled:8,duplicated:16};function Vt(t,e){return zt(t,e,Ft.redirected,'Redirected when going from "'+t.fullPath+'" to "'+Wt(e)+'" via a navigation guard.')}function Ht(t,e){var n=zt(t,e,Ft.duplicated,'Avoided redundant navigation to current location: "'+t.fullPath+'".');return n.name="NavigationDuplicated",n}function Bt(t,e){return zt(t,e,Ft.cancelled,'Navigation cancelled from "'+t.fullPath+'" to "'+e.fullPath+'" with a new navigation.')}function Ut(t,e){return zt(t,e,Ft.aborted,'Navigation aborted from "'+t.fullPath+'" to "'+e.fullPath+'" via a navigation guard.')}function zt(t,e,n,r){var o=new Error(r);return o._isRouter=!0,o.from=t,o.to=e,o.type=n,o}var qt=["params","query","hash"];function Wt(t){if("string"===typeof t)return t;if("path"in t)return t.path;var e={};return qt.forEach((function(n){n in t&&(e[n]=t[n])})),JSON.stringify(e,null,2)}function Zt(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function Gt(t,e){return Zt(t)&&t._isRouter&&(null==e||t.type===e)}function Kt(t){return function(e,n,r){var o=!1,i=0,a=null;Qt(t,(function(t,e,n,c){if("function"===typeof t&&void 0===t.cid){o=!0,i++;var s,u=te((function(e){Jt(e)&&(e=e.default),t.resolved="function"===typeof e?e:et.extend(e),n.components[c]=e,i--,i<=0&&r()})),f=te((function(t){var e="Failed to resolve async component "+c+": "+t;a||(a=Zt(t)?t:new Error(e),r(a))}));try{s=t(u,f)}catch(p){f(p)}if(s)if("function"===typeof s.then)s.then(u,f);else{var l=s.component;l&&"function"===typeof l.then&&l.then(u,f)}}})),o||r()}}function Qt(t,e){return Yt(t.map((function(t){return Object.keys(t.components).map((function(n){return e(t.components[n],t.instances[n],t,n)}))})))}function Yt(t){return Array.prototype.concat.apply([],t)}var Xt="function"===typeof Symbol&&"symbol"===typeof Symbol.toStringTag;function Jt(t){return t.__esModule||Xt&&"Module"===t[Symbol.toStringTag]}function te(t){var e=!1;return function(){var n=[],r=arguments.length;while(r--)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var ee=function(t,e){this.router=t,this.base=ne(e),this.current=m,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function ne(t){if(!t)if(ut){var e=document.querySelector("base");t=e&&e.getAttribute("href")||"/",t=t.replace(/^https?:\/\/[^\/]+/,"")}else t="/";return"/"!==t.charAt(0)&&(t="/"+t),t.replace(/\/$/,"")}function re(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n0)){var e=this.router,n=e.options.scrollBehavior,r=It&&n;r&&this.listeners.push(Ot());var o=function(){var n=t.current,o=pe(t.base);t.current===m&&o===t._startLocation||t.transitionTo(o,(function(t){r&&kt(e,t,n,!0)}))};window.addEventListener("popstate",o),this.listeners.push((function(){window.removeEventListener("popstate",o)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,(function(t){Rt(E(r.base+t.fullPath)),kt(r.router,t,i,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,(function(t){Nt(E(r.base+t.fullPath)),kt(r.router,t,i,!1),e&&e(t)}),n)},e.prototype.ensureURL=function(t){if(pe(this.base)!==this.current.fullPath){var e=E(this.base+this.current.fullPath);t?Rt(e):Nt(e)}},e.prototype.getCurrentLocation=function(){return pe(this.base)},e}(ee);function pe(t){var e=window.location.pathname,n=e.toLowerCase(),r=t.toLowerCase();return!t||n!==r&&0!==n.indexOf(E(r+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var de=function(t){function e(e,n,r){t.call(this,e,n),r&&he(this.base)||ve()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router,n=e.options.scrollBehavior,r=It&&n;r&&this.listeners.push(Ot());var o=function(){var e=t.current;ve()&&t.transitionTo(ye(),(function(n){r&&kt(t.router,n,e,!0),It||be(n.fullPath)}))},i=It?"popstate":"hashchange";window.addEventListener(i,o),this.listeners.push((function(){window.removeEventListener(i,o)}))}},e.prototype.push=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,(function(t){ge(t.fullPath),kt(r.router,t,i,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,(function(t){be(t.fullPath),kt(r.router,t,i,!1),e&&e(t)}),n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;ye()!==e&&(t?ge(e):be(e))},e.prototype.getCurrentLocation=function(){return ye()},e}(ee);function he(t){var e=pe(t);if(!/^\/#/.test(e))return window.location.replace(E(t+"/#"+e)),!0}function ve(){var t=ye();return"/"===t.charAt(0)||(be("/"+t),!1)}function ye(){var t=window.location.href,e=t.indexOf("#");return e<0?"":(t=t.slice(e+1),t)}function me(t){var e=window.location.href,n=e.indexOf("#"),r=n>=0?e.slice(0,n):e;return r+"#"+t}function ge(t){It?Rt(me(t)):window.location.hash=t}function be(t){It?Nt(me(t)):window.location.replace(me(t))}var we=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)}),n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){var t=e.current;e.index=n,e.updateRoute(r),e.router.afterHooks.forEach((function(e){e&&e(r,t)}))}),(function(t){Gt(t,Ft.duplicated)&&(e.index=n)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(ee),xe=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=ht(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!It&&!1!==t.fallback,this.fallback&&(e="hash"),ut||(e="abstract"),this.mode=e,e){case"history":this.history=new le(this,t.base);break;case"hash":this.history=new de(this,t.base,this.fallback);break;case"abstract":this.history=new we(this,t.base);break;default:0}},_e={currentRoute:{configurable:!0}};function Oe(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}function ke(t,e,n){var r="hash"===n?"#"+e:e;return t?E(t+"/"+r):r}xe.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},_e.currentRoute.get=function(){return this.history&&this.history.current},xe.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()})),!this.app){this.app=t;var n=this.history;if(n instanceof le||n instanceof de){var r=function(t){var r=n.current,o=e.options.scrollBehavior,i=It&&o;i&&"fullPath"in t&&kt(e,t,r,!1)},o=function(t){n.setupListeners(),r(t)};n.transitionTo(n.getCurrentLocation(),o,o)}n.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},xe.prototype.beforeEach=function(t){return Oe(this.beforeHooks,t)},xe.prototype.beforeResolve=function(t){return Oe(this.resolveHooks,t)},xe.prototype.afterEach=function(t){return Oe(this.afterHooks,t)},xe.prototype.onReady=function(t,e){this.history.onReady(t,e)},xe.prototype.onError=function(t){this.history.onError(t)},xe.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!==typeof Promise)return new Promise((function(e,n){r.history.push(t,e,n)}));this.history.push(t,e,n)},xe.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!==typeof Promise)return new Promise((function(e,n){r.history.replace(t,e,n)}));this.history.replace(t,e,n)},xe.prototype.go=function(t){this.history.go(t)},xe.prototype.back=function(){this.go(-1)},xe.prototype.forward=function(){this.go(1)},xe.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},xe.prototype.resolve=function(t,e,n){e=e||this.history.current;var r=tt(t,e,n,this),o=this.match(r,e),i=o.redirectedFrom||o.fullPath,a=this.history.base,c=ke(a,i,this.mode);return{location:r,route:o,href:c,normalizedTo:r,resolved:o}},xe.prototype.getRoutes=function(){return this.matcher.getRoutes()},xe.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==m&&this.history.transitionTo(this.history.getCurrentLocation())},xe.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==m&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(xe.prototype,_e),xe.install=st,xe.version="3.5.2",xe.isNavigationFailure=Gt,xe.NavigationFailureType=Ft,xe.START_LOCATION=m,ut&&window.Vue&&window.Vue.use(xe),e["a"]=xe},"8da5":function(t,e,n){"use strict";n.d(e,"a",(function(){return s})),n.d(e,"b",(function(){return u}));var r=n("80d2"),o=[[3.2406,-1.5372,-.4986],[-.9689,1.8758,.0415],[.0557,-.204,1.057]],i=function(t){return t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055},a=[[.4124,.3576,.1805],[.2126,.7152,.0722],[.0193,.1192,.9505]],c=function(t){return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)};function s(t){for(var e=Array(3),n=i,a=o,c=0;c<3;++c)e[c]=Math.round(255*Object(r["c"])(n(a[c][0]*t[0]+a[c][1]*t[1]+a[c][2]*t[2])));return(e[0]<<16)+(e[1]<<8)+(e[2]<<0)}function u(t){for(var e=[0,0,0],n=c,r=a,o=n((t>>16&255)/255),i=n((t>>8&255)/255),s=n((t>>0&255)/255),u=0;u<3;++u)e[u]=r[u][0]*o+r[u][1]*i+r[u][2]*s;return e}},"90e3":function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++n+r).toString(36)}},9112:function(t,e,n){var r=n("83ab"),o=n("9bf2"),i=n("5c6c");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},9263:function(t,e,n){"use strict";var r=n("ad6d"),o=n("9f7f"),i=n("5692"),a=n("7c73"),c=n("69f3").get,s=n("fce3"),u=n("107c"),f=RegExp.prototype.exec,l=i("native-string-replace",String.prototype.replace),p=f,d=function(){var t=/a/,e=/b*/g;return f.call(t,"a"),f.call(e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),h=o.UNSUPPORTED_Y||o.BROKEN_CARET,v=void 0!==/()??/.exec("")[1],y=d||v||h||s||u;y&&(p=function(t){var e,n,o,i,s,u,y,m=this,g=c(m),b=g.raw;if(b)return b.lastIndex=m.lastIndex,e=p.call(b,t),m.lastIndex=b.lastIndex,e;var w=g.groups,x=h&&m.sticky,_=r.call(m),O=m.source,k=0,C=t;if(x&&(_=_.replace("y",""),-1===_.indexOf("g")&&(_+="g"),C=String(t).slice(m.lastIndex),m.lastIndex>0&&(!m.multiline||m.multiline&&"\n"!==t[m.lastIndex-1])&&(O="(?: "+O+")",C=" "+C,k++),n=new RegExp("^(?:"+O+")",_)),v&&(n=new RegExp("^"+O+"$(?!\\s)",_)),d&&(o=m.lastIndex),i=f.call(x?n:m,C),x?i?(i.input=i.input.slice(k),i[0]=i[0].slice(k),i.index=m.lastIndex,m.lastIndex+=i[0].length):m.lastIndex=0:d&&i&&(m.lastIndex=m.global?i.index+i[0].length:o),v&&i&&i.length>1&&l.call(i[0],n,(function(){for(s=1;s=51||!o((function(){var t=[];return t[h]=!1,t.concat()[0]!==t})),g=l("concat"),b=function(t){if(!a(t))return!1;var e=t[h];return void 0!==e?!!e:i(t)},w=!m||!g;r({target:"Array",proto:!0,forced:w},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;ev)throw TypeError(y);for(n=0;n=v)throw TypeError(y);u(l,p++,i)}return l.length=p,l}})},"9bdd":function(t,e,n){var r=n("825a"),o=n("2a62");t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(a){throw o(t),a}}},"9bf2":function(t,e,n){var r=n("83ab"),o=n("0cfb"),i=n("825a"),a=n("c04e"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},"9ed3":function(t,e,n){"use strict";var r=n("ae93").IteratorPrototype,o=n("7c73"),i=n("5c6c"),a=n("d44e"),c=n("3f8c"),s=function(){return this};t.exports=function(t,e,n){var u=e+" Iterator";return t.prototype=o(r,{next:i(1,n)}),a(t,u,!1,!0),c[u]=s,t}},"9f7f":function(t,e,n){var r=n("d039"),o=function(t,e){return RegExp(t,e)};e.UNSUPPORTED_Y=r((function(){var t=o("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),e.BROKEN_CARET=r((function(){var t=o("^r","gy");return t.lastIndex=2,null!=t.exec("str")}))},a15b:function(t,e,n){"use strict";var r=n("23e7"),o=n("44ad"),i=n("fc6a"),a=n("a640"),c=[].join,s=o!=Object,u=a("join",",");r({target:"Array",proto:!0,forced:s||!u},{join:function(t){return c.call(i(this),void 0===t?",":t)}})},a4b4:function(t,e,n){var r=n("342f");t.exports=/web0s(?!.*chrome)/i.test(r)},a4d3:function(t,e,n){"use strict";var r=n("23e7"),o=n("da84"),i=n("d066"),a=n("c430"),c=n("83ab"),s=n("4930"),u=n("fdbf"),f=n("d039"),l=n("5135"),p=n("e8b5"),d=n("861d"),h=n("825a"),v=n("7b0b"),y=n("fc6a"),m=n("c04e"),g=n("5c6c"),b=n("7c73"),w=n("df75"),x=n("241c"),_=n("057f"),O=n("7418"),k=n("06cf"),C=n("9bf2"),S=n("d1e7"),A=n("9112"),L=n("6eeb"),j=n("5692"),E=n("f772"),$=n("d012"),T=n("90e3"),M=n("b622"),P=n("e538"),I=n("746f"),R=n("d44e"),N=n("69f3"),D=n("b727").forEach,F=E("hidden"),V="Symbol",H="prototype",B=M("toPrimitive"),U=N.set,z=N.getterFor(V),q=Object[H],W=o.Symbol,Z=i("JSON","stringify"),G=k.f,K=C.f,Q=_.f,Y=S.f,X=j("symbols"),J=j("op-symbols"),tt=j("string-to-symbol-registry"),et=j("symbol-to-string-registry"),nt=j("wks"),rt=o.QObject,ot=!rt||!rt[H]||!rt[H].findChild,it=c&&f((function(){return 7!=b(K({},"a",{get:function(){return K(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=G(q,e);r&&delete q[e],K(t,e,n),r&&t!==q&&K(q,e,r)}:K,at=function(t,e){var n=X[t]=b(W[H]);return U(n,{type:V,tag:t,description:e}),c||(n.description=e),n},ct=u?function(t){return"symbol"==typeof t}:function(t){return Object(t)instanceof W},st=function(t,e,n){t===q&&st(J,e,n),h(t);var r=m(e,!0);return h(n),l(X,r)?(n.enumerable?(l(t,F)&&t[F][r]&&(t[F][r]=!1),n=b(n,{enumerable:g(0,!1)})):(l(t,F)||K(t,F,g(1,{})),t[F][r]=!0),it(t,r,n)):K(t,r,n)},ut=function(t,e){h(t);var n=y(e),r=w(n).concat(ht(n));return D(r,(function(e){c&&!lt.call(n,e)||st(t,e,n[e])})),t},ft=function(t,e){return void 0===e?b(t):ut(b(t),e)},lt=function(t){var e=m(t,!0),n=Y.call(this,e);return!(this===q&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,F)&&this[F][e])||n)},pt=function(t,e){var n=y(t),r=m(e,!0);if(n!==q||!l(X,r)||l(J,r)){var o=G(n,r);return!o||!l(X,r)||l(n,F)&&n[F][r]||(o.enumerable=!0),o}},dt=function(t){var e=Q(y(t)),n=[];return D(e,(function(t){l(X,t)||l($,t)||n.push(t)})),n},ht=function(t){var e=t===q,n=Q(e?J:y(t)),r=[];return D(n,(function(t){!l(X,t)||e&&!l(q,t)||r.push(X[t])})),r};if(s||(W=function(){if(this instanceof W)throw TypeError("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=T(t),n=function(t){this===q&&n.call(J,t),l(this,F)&&l(this[F],e)&&(this[F][e]=!1),it(this,e,g(1,t))};return c&&ot&&it(q,e,{configurable:!0,set:n}),at(e,t)},L(W[H],"toString",(function(){return z(this).tag})),L(W,"withoutSetter",(function(t){return at(T(t),t)})),S.f=lt,C.f=st,k.f=pt,x.f=_.f=dt,O.f=ht,P.f=function(t){return at(M(t),t)},c&&(K(W[H],"description",{configurable:!0,get:function(){return z(this).description}}),a||L(q,"propertyIsEnumerable",lt,{unsafe:!0}))),r({global:!0,wrap:!0,forced:!s,sham:!s},{Symbol:W}),D(w(nt),(function(t){I(t)})),r({target:V,stat:!0,forced:!s},{for:function(t){var e=String(t);if(l(tt,e))return tt[e];var n=W(e);return tt[e]=n,et[n]=e,n},keyFor:function(t){if(!ct(t))throw TypeError(t+" is not a symbol");if(l(et,t))return et[t]},useSetter:function(){ot=!0},useSimple:function(){ot=!1}}),r({target:"Object",stat:!0,forced:!s,sham:!c},{create:ft,defineProperty:st,defineProperties:ut,getOwnPropertyDescriptor:pt}),r({target:"Object",stat:!0,forced:!s},{getOwnPropertyNames:dt,getOwnPropertySymbols:ht}),r({target:"Object",stat:!0,forced:f((function(){O.f(1)}))},{getOwnPropertySymbols:function(t){return O.f(v(t))}}),Z){var vt=!s||f((function(){var t=W();return"[null]"!=Z([t])||"{}"!=Z({a:t})||"{}"!=Z(Object(t))}));r({target:"JSON",stat:!0,forced:vt},{stringify:function(t,e,n){var r,o=[t],i=1;while(arguments.length>i)o.push(arguments[i++]);if(r=e,(d(e)||void 0!==t)&&!ct(t))return p(e)||(e=function(t,e){if("function"==typeof r&&(e=r.call(this,t,e)),!ct(e))return e}),o[1]=e,Z.apply(null,o)}})}W[H][B]||A(W[H],B,W[H].valueOf),R(W,V),$[F]=!0},a630:function(t,e,n){var r=n("23e7"),o=n("4df4"),i=n("1c7e"),a=!i((function(t){Array.from(t)}));r({target:"Array",stat:!0,forced:a},{from:o})},a640:function(t,e,n){"use strict";var r=n("d039");t.exports=function(t,e){var n=[][t];return!!n&&r((function(){n.call(null,e||function(){throw 1},1)}))}},a691:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},a79d:function(t,e,n){"use strict";var r=n("23e7"),o=n("c430"),i=n("fea9"),a=n("d039"),c=n("d066"),s=n("4840"),u=n("cdf9"),f=n("6eeb"),l=!!i&&a((function(){i.prototype["finally"].call({then:function(){}},(function(){}))}));if(r({target:"Promise",proto:!0,real:!0,forced:l},{finally:function(t){var e=s(this,c("Promise")),n="function"==typeof t;return this.then(n?function(n){return u(e,t()).then((function(){return n}))}:t,n?function(n){return u(e,t()).then((function(){throw n}))}:t)}}),!o&&"function"==typeof i){var p=c("Promise").prototype["finally"];i.prototype["finally"]!==p&&f(i.prototype,"finally",p,{unsafe:!0})}},a9e3:function(t,e,n){"use strict";var r=n("83ab"),o=n("da84"),i=n("94ca"),a=n("6eeb"),c=n("5135"),s=n("c6b6"),u=n("7156"),f=n("c04e"),l=n("d039"),p=n("7c73"),d=n("241c").f,h=n("06cf").f,v=n("9bf2").f,y=n("58a8").trim,m="Number",g=o[m],b=g.prototype,w=s(p(b))==m,x=function(t){var e,n,r,o,i,a,c,s,u=f(t,!1);if("string"==typeof u&&u.length>2)if(u=y(u),e=u.charCodeAt(0),43===e||45===e){if(n=u.charCodeAt(2),88===n||120===n)return NaN}else if(48===e){switch(u.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+u}for(i=u.slice(2),a=i.length,c=0;co)return NaN;return parseInt(i,r)}return+u};if(i(m,!g(" 0o1")||!g("0b1")||g("+0x1"))){for(var _,O=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof O&&(w?l((function(){b.valueOf.call(n)})):s(n)!=m)?u(new g(x(e)),n,O):x(e)},k=r?d(g):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","),C=0;k.length>C;C++)c(g,_=k[C])&&!c(O,_)&&v(O,_,h(g,_));O.prototype=b,b.constructor=O,a(o,m,O)}},ab13:function(t,e,n){var r=n("b622"),o=r("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[o]=!1,"/./"[t](e)}catch(r){}}return!1}},ac1f:function(t,e,n){"use strict";var r=n("23e7"),o=n("9263");r({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},ad6d:function(t,e,n){"use strict";var r=n("825a");t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},addb:function(t,e){var n=Math.floor,r=function(t,e){var a=t.length,c=n(a/2);return a<8?o(t,e):i(r(t.slice(0,c),e),r(t.slice(c),e),e)},o=function(t,e){var n,r,o=t.length,i=1;while(i0)t[r]=t[--r];r!==i++&&(t[r]=n)}return t},i=function(t,e,n){var r=t.length,o=e.length,i=0,a=0,c=[];while(i3}))}},b041:function(t,e,n){"use strict";var r=n("00ee"),o=n("f5df");t.exports=r?{}.toString:function(){return"[object "+o(this)+"]"}},b0c0:function(t,e,n){var r=n("83ab"),o=n("9bf2").f,i=Function.prototype,a=i.toString,c=/^\s*function ([^ (]*)/,s="name";r&&!(s in i)&&o(i,s,{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return""}}})},b575:function(t,e,n){var r,o,i,a,c,s,u,f,l=n("da84"),p=n("06cf").f,d=n("2cf4").set,h=n("1cdc"),v=n("a4b4"),y=n("605d"),m=l.MutationObserver||l.WebKitMutationObserver,g=l.document,b=l.process,w=l.Promise,x=p(l,"queueMicrotask"),_=x&&x.value;_||(r=function(){var t,e;y&&(t=b.domain)&&t.exit();while(o){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},h||y||v||!m||!g?w&&w.resolve?(u=w.resolve(void 0),u.constructor=w,f=u.then,a=function(){f.call(u,r)}):a=y?function(){b.nextTick(r)}:function(){d.call(l,r)}:(c=!0,s=g.createTextNode(""),new m(r).observe(s,{characterData:!0}),a=function(){s.data=c=!c})),t.exports=_||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},b622:function(t,e,n){var r=n("da84"),o=n("5692"),i=n("5135"),a=n("90e3"),c=n("4930"),s=n("fdbf"),u=o("wks"),f=r.Symbol,l=s?f:f&&f.withoutSetter||a;t.exports=function(t){return i(u,t)&&(c||"string"==typeof u[t])||(c&&i(f,t)?u[t]=f[t]:u[t]=l("Symbol."+t)),u[t]}},b64b:function(t,e,n){var r=n("23e7"),o=n("7b0b"),i=n("df75"),a=n("d039"),c=a((function(){i(1)}));r({target:"Object",stat:!0,forced:c},{keys:function(t){return i(o(t))}})},b680:function(t,e,n){"use strict";var r=n("23e7"),o=n("a691"),i=n("408a"),a=n("1148"),c=n("d039"),s=1..toFixed,u=Math.floor,f=function(t,e,n){return 0===e?n:e%2===1?f(t,e-1,n*t):f(t*t,e/2,n)},l=function(t){var e=0,n=t;while(n>=4096)e+=12,n/=4096;while(n>=2)e+=1,n/=2;return e},p=function(t,e,n){var r=-1,o=n;while(++r<6)o+=e*t[r],t[r]=o%1e7,o=u(o/1e7)},d=function(t,e){var n=6,r=0;while(--n>=0)r+=t[n],t[n]=u(r/e),r=r%e*1e7},h=function(t){var e=6,n="";while(--e>=0)if(""!==n||0===e||0!==t[e]){var r=String(t[e]);n=""===n?r:n+a.call("0",7-r.length)+r}return n},v=s&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){s.call({})}));r({target:"Number",proto:!0,forced:v},{toFixed:function(t){var e,n,r,c,s=i(this),u=o(t),v=[0,0,0,0,0,0],y="",m="0";if(u<0||u>20)throw RangeError("Incorrect fraction digits");if(s!=s)return"NaN";if(s<=-1e21||s>=1e21)return String(s);if(s<0&&(y="-",s=-s),s>1e-21)if(e=l(s*f(2,69,1))-69,n=e<0?s*f(2,-e,1):s/f(2,e,1),n*=4503599627370496,e=52-e,e>0){p(v,0,n),r=u;while(r>=7)p(v,1e7,0),r-=7;p(v,f(10,r,1),0),r=e-1;while(r>=23)d(v,1<<23),r-=23;d(v,1<0?(c=m.length,m=y+(c<=u?"0."+a.call("0",u-c)+m:m.slice(0,c-u)+"."+m.slice(c-u))):m=y+m,m}})},b727:function(t,e,n){var r=n("0366"),o=n("44ad"),i=n("7b0b"),a=n("50c4"),c=n("65f0"),s=[].push,u=function(t){var e=1==t,n=2==t,u=3==t,f=4==t,l=6==t,p=7==t,d=5==t||l;return function(h,v,y,m){for(var g,b,w=i(h),x=o(w),_=r(v,y,3),O=a(x.length),k=0,C=m||c,S=e?C(h,O):n||p?C(h,0):void 0;O>k;k++)if((d||k in x)&&(g=x[k],b=_(g,k,w),t))if(e)S[k]=b;else if(b)switch(t){case 3:return!0;case 5:return g;case 6:return k;case 2:s.call(S,g)}else switch(t){case 4:return!1;case 7:s.call(S,g)}return l?-1:u||f?f:S}};t.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterOut:u(7)}},bb2f:function(t,e,n){var r=n("d039");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},bd0c:function(t,e,n){},c04e:function(t,e,n){var r=n("861d");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},c430:function(t,e){t.exports=!1},c6b6:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},c6cd:function(t,e,n){var r=n("da84"),o=n("ce4e"),i="__core-js_shared__",a=r[i]||o(i,{});t.exports=a},c8ba:function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"===typeof window&&(n=window)}t.exports=n},c8d2:function(t,e,n){var r=n("d039"),o=n("5899"),i="​…᠎";t.exports=function(t){return r((function(){return!!o[t]()||i[t]()!=i||o[t].name!==t}))}},ca84:function(t,e,n){var r=n("5135"),o=n("fc6a"),i=n("4d64").indexOf,a=n("d012");t.exports=function(t,e){var n,c=o(t),s=0,u=[];for(n in c)!r(a,n)&&r(c,n)&&u.push(n);while(e.length>s)r(c,n=e[s++])&&(~i(u,n)||u.push(n));return u}},caad:function(t,e,n){"use strict";var r=n("23e7"),o=n("4d64").includes,i=n("44d2");r({target:"Array",proto:!0},{includes:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i("includes")},cb29:function(t,e,n){var r=n("23e7"),o=n("81d5"),i=n("44d2");r({target:"Array",proto:!0},{fill:o}),i("fill")},cc12:function(t,e,n){var r=n("da84"),o=n("861d"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},cca6:function(t,e,n){var r=n("23e7"),o=n("60da");r({target:"Object",stat:!0,forced:Object.assign!==o},{assign:o})},cdf9:function(t,e,n){var r=n("825a"),o=n("861d"),i=n("f069");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t),a=n.resolve;return a(e),n.promise}},ce4e:function(t,e,n){var r=n("da84"),o=n("9112");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},d012:function(t,e){t.exports={}},d039:function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},d066:function(t,e,n){var r=n("428f"),o=n("da84"),i=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},d1e7:function(t,e,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},d28b:function(t,e,n){var r=n("746f");r("iterator")},d2bb:function(t,e,n){var r=n("825a"),o=n("3bbe");t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,t.call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},d3b7:function(t,e,n){var r=n("00ee"),o=n("6eeb"),i=n("b041");r||o(Object.prototype,"toString",i,{unsafe:!0})},d44e:function(t,e,n){var r=n("9bf2").f,o=n("5135"),i=n("b622"),a=i("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,a)&&r(t,a,{configurable:!0,value:e})}},d784:function(t,e,n){"use strict";n("ac1f");var r=n("6eeb"),o=n("9263"),i=n("d039"),a=n("b622"),c=n("9112"),s=a("species"),u=RegExp.prototype;t.exports=function(t,e,n,f){var l=a(t),p=!i((function(){var e={};return e[l]=function(){return 7},7!=""[t](e)})),d=p&&!i((function(){var e=!1,n=/a/;return"split"===t&&(n={},n.constructor={},n.constructor[s]=function(){return n},n.flags="",n[l]=/./[l]),n.exec=function(){return e=!0,null},n[l](""),!e}));if(!p||!d||n){var h=/./[l],v=e(l,""[t],(function(t,e,n,r,i){var a=e.exec;return a===o||a===u.exec?p&&!i?{done:!0,value:h.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}));r(String.prototype,t,v[0]),r(u,l,v[1])}f&&c(u[l],"sham",!0)}},d81d:function(t,e,n){"use strict";var r=n("23e7"),o=n("b727").map,i=n("1dde"),a=i("map");r({target:"Array",proto:!0,forced:!a},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},d998:function(t,e,n){var r=n("342f");t.exports=/MSIE|Trident/.test(r)},d9bd:function(t,e,n){"use strict";n.d(e,"c",(function(){return i})),n.d(e,"b",(function(){return a})),n.d(e,"a",(function(){return c}));n("caad"),n("2532"),n("99af"),n("ac1f"),n("5319"),n("b0c0"),n("466d"),n("a15b"),n("d81d"),n("38cf");var r=n("f309");function o(t,e,n){if(!r["a"].config.silent){if(n&&(e={_isVue:!0,$parent:n,$options:e}),e){if(e.$_alreadyWarned=e.$_alreadyWarned||[],e.$_alreadyWarned.includes(t))return;e.$_alreadyWarned.push(t)}return"[Vuetify] ".concat(t)+(e?l(e):"")}}function i(t,e,n){var r=o(t,e,n);null!=r&&console.warn(r)}function a(t,e,n){var r=o(t,e,n);null!=r&&console.error(r)}function c(t,e,n,r){a("[BREAKING] '".concat(t,"' has been removed, use '").concat(e,"' instead. For more information, see the upgrade guide https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide"),n,r)}var s=/(?:^|[-_])(\w)/g,u=function(t){return t.replace(s,(function(t){return t.toUpperCase()})).replace(/[-_]/g,"")};function f(t,e){if(t.$root===t)return"";var n="function"===typeof t&&null!=t.cid?t.options:t._isVue?t.$options||t.constructor.options:t||{},r=n.name||n._componentTag,o=n.__file;if(!r&&o){var i=o.match(/([^/\\]+)\.vue$/);r=i&&i[1]}return(r?"<".concat(u(r),">"):"")+(o&&!1!==e?" at ".concat(o):"")}function l(t){if(t._isVue&&t.$parent){var e=[],n=0;while(t){if(e.length>0){var r=e[e.length-1];if(r.constructor===t.constructor){n++,t=t.$parent;continue}n>0&&(e[e.length-1]=[r,n],n=0)}e.push(t),t=t.$parent}return"\n\nfound in\n\n"+e.map((function(t,e){return"".concat(0===e?"---\x3e ":" ".repeat(5+2*e)).concat(Array.isArray(t)?"".concat(f(t[0]),"... (").concat(t[1]," recursive calls)"):f(t))})).join("\n")}return"\n\n(found in ".concat(f(t),")")}},da84:function(t,e,n){(function(e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||function(){return this}()||Function("return this")()}).call(this,n("c8ba"))},dbb4:function(t,e,n){var r=n("23e7"),o=n("83ab"),i=n("56ef"),a=n("fc6a"),c=n("06cf"),s=n("8418");r({target:"Object",stat:!0,sham:!o},{getOwnPropertyDescriptors:function(t){var e,n,r=a(t),o=c.f,u=i(r),f={},l=0;while(u.length>l)n=o(r,e=u[l++]),void 0!==n&&s(f,e,n);return f}})},dca8:function(t,e,n){var r=n("23e7"),o=n("bb2f"),i=n("d039"),a=n("861d"),c=n("f183").onFreeze,s=Object.freeze,u=i((function(){s(1)}));r({target:"Object",stat:!0,forced:u,sham:!o},{freeze:function(t){return s&&a(t)?s(c(t)):t}})},ddb0:function(t,e,n){var r=n("da84"),o=n("fdbc"),i=n("e260"),a=n("9112"),c=n("b622"),s=c("iterator"),u=c("toStringTag"),f=i.values;for(var l in o){var p=r[l],d=p&&p.prototype;if(d){if(d[s]!==f)try{a(d,s,f)}catch(v){d[s]=f}if(d[u]||a(d,u,l),o[l])for(var h in i)if(d[h]!==i[h])try{a(d,h,i[h])}catch(v){d[h]=i[h]}}}},df75:function(t,e,n){var r=n("ca84"),o=n("7839");t.exports=Object.keys||function(t){return r(t,o)}},df86:function(t,e,n){},e01a:function(t,e,n){"use strict";var r=n("23e7"),o=n("83ab"),i=n("da84"),a=n("5135"),c=n("861d"),s=n("9bf2").f,u=n("e893"),f=i.Symbol;if(o&&"function"==typeof f&&(!("description"in f.prototype)||void 0!==f().description)){var l={},p=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),e=this instanceof p?new f(t):void 0===t?f():f(t);return""===t&&(l[e]=!0),e};u(p,f);var d=p.prototype=f.prototype;d.constructor=p;var h=d.toString,v="Symbol(test)"==String(f("test")),y=/^Symbol\((.*)\)[^)]+$/;s(d,"description",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=h.call(t);if(a(l,t))return"";var n=v?e.slice(7,-1):e.replace(y,"$1");return""===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},e163:function(t,e,n){var r=n("5135"),o=n("7b0b"),i=n("f772"),a=n("e177"),c=i("IE_PROTO"),s=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},e177:function(t,e,n){var r=n("d039");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},e260:function(t,e,n){"use strict";var r=n("fc6a"),o=n("44d2"),i=n("3f8c"),a=n("69f3"),c=n("7dd0"),s="Array Iterator",u=a.set,f=a.getterFor(s);t.exports=c(Array,"Array",(function(t,e){u(this,{type:s,target:r(t),index:0,kind:e})}),(function(){var t=f(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),"values"),i.Arguments=i.Array,o("keys"),o("values"),o("entries")},e2cc:function(t,e,n){var r=n("6eeb");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},e439:function(t,e,n){var r=n("23e7"),o=n("d039"),i=n("fc6a"),a=n("06cf").f,c=n("83ab"),s=o((function(){a(1)})),u=!c||s;r({target:"Object",stat:!0,forced:u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},e538:function(t,e,n){var r=n("b622");e.f=r},e667:function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},e6cf:function(t,e,n){"use strict";var r,o,i,a,c=n("23e7"),s=n("c430"),u=n("da84"),f=n("d066"),l=n("fea9"),p=n("6eeb"),d=n("e2cc"),h=n("d2bb"),v=n("d44e"),y=n("2626"),m=n("861d"),g=n("1c0b"),b=n("19aa"),w=n("8925"),x=n("2266"),_=n("1c7e"),O=n("4840"),k=n("2cf4").set,C=n("b575"),S=n("cdf9"),A=n("44de"),L=n("f069"),j=n("e667"),E=n("69f3"),$=n("94ca"),T=n("b622"),M=n("6069"),P=n("605d"),I=n("2d00"),R=T("species"),N="Promise",D=E.get,F=E.set,V=E.getterFor(N),H=l&&l.prototype,B=l,U=H,z=u.TypeError,q=u.document,W=u.process,Z=L.f,G=Z,K=!!(q&&q.createEvent&&u.dispatchEvent),Q="function"==typeof PromiseRejectionEvent,Y="unhandledrejection",X="rejectionhandled",J=0,tt=1,et=2,nt=1,rt=2,ot=!1,it=$(N,(function(){var t=w(B),e=t!==String(B);if(!e&&66===I)return!0;if(s&&!U["finally"])return!0;if(I>=51&&/native code/.test(t))return!1;var n=new B((function(t){t(1)})),r=function(t){t((function(){}),(function(){}))},o=n.constructor={};return o[R]=r,ot=n.then((function(){}))instanceof r,!ot||!e&&M&&!Q})),at=it||!_((function(t){B.all(t)["catch"]((function(){}))})),ct=function(t){var e;return!(!m(t)||"function"!=typeof(e=t.then))&&e},st=function(t,e){if(!t.notified){t.notified=!0;var n=t.reactions;C((function(){var r=t.value,o=t.state==tt,i=0;while(n.length>i){var a,c,s,u=n[i++],f=o?u.ok:u.fail,l=u.resolve,p=u.reject,d=u.domain;try{f?(o||(t.rejection===rt&&pt(t),t.rejection=nt),!0===f?a=r:(d&&d.enter(),a=f(r),d&&(d.exit(),s=!0)),a===u.promise?p(z("Promise-chain cycle")):(c=ct(a))?c.call(a,l,p):l(a)):p(r)}catch(h){d&&!s&&d.exit(),p(h)}}t.reactions=[],t.notified=!1,e&&!t.rejection&&ft(t)}))}},ut=function(t,e,n){var r,o;K?(r=q.createEvent("Event"),r.promise=e,r.reason=n,r.initEvent(t,!1,!0),u.dispatchEvent(r)):r={promise:e,reason:n},!Q&&(o=u["on"+t])?o(r):t===Y&&A("Unhandled promise rejection",n)},ft=function(t){k.call(u,(function(){var e,n=t.facade,r=t.value,o=lt(t);if(o&&(e=j((function(){P?W.emit("unhandledRejection",r,n):ut(Y,n,r)})),t.rejection=P||lt(t)?rt:nt,e.error))throw e.value}))},lt=function(t){return t.rejection!==nt&&!t.parent},pt=function(t){k.call(u,(function(){var e=t.facade;P?W.emit("rejectionHandled",e):ut(X,e,t.value)}))},dt=function(t,e,n){return function(r){t(e,r,n)}},ht=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=et,st(t,!0))},vt=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw z("Promise can't be resolved itself");var r=ct(e);r?C((function(){var n={done:!1};try{r.call(e,dt(vt,n,t),dt(ht,n,t))}catch(o){ht(n,o,t)}})):(t.value=e,t.state=tt,st(t,!1))}catch(o){ht({done:!1},o,t)}}};if(it&&(B=function(t){b(this,B,N),g(t),r.call(this);var e=D(this);try{t(dt(vt,e),dt(ht,e))}catch(n){ht(e,n)}},U=B.prototype,r=function(t){F(this,{type:N,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:J,value:void 0})},r.prototype=d(U,{then:function(t,e){var n=V(this),r=Z(O(this,B));return r.ok="function"!=typeof t||t,r.fail="function"==typeof e&&e,r.domain=P?W.domain:void 0,n.parent=!0,n.reactions.push(r),n.state!=J&&st(n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=D(t);this.promise=t,this.resolve=dt(vt,e),this.reject=dt(ht,e)},L.f=Z=function(t){return t===B||t===i?new o(t):G(t)},!s&&"function"==typeof l&&H!==Object.prototype)){a=H.then,ot||(p(H,"then",(function(t,e){var n=this;return new B((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),p(H,"catch",U["catch"],{unsafe:!0}));try{delete H.constructor}catch(yt){}h&&h(H,U)}c({global:!0,wrap:!0,forced:it},{Promise:B}),v(B,N,!1,!0),y(N),i=f(N),c({target:N,stat:!0,forced:it},{reject:function(t){var e=Z(this);return e.reject.call(void 0,t),e.promise}}),c({target:N,stat:!0,forced:s||it},{resolve:function(t){return S(s&&this===i?B:this,t)}}),c({target:N,stat:!0,forced:at},{all:function(t){var e=this,n=Z(e),r=n.resolve,o=n.reject,i=j((function(){var n=g(e.resolve),i=[],a=0,c=1;x(t,(function(t){var s=a++,u=!1;i.push(void 0),c++,n.call(e,t).then((function(t){u||(u=!0,i[s]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=Z(e),r=n.reject,o=j((function(){var o=g(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},e893:function(t,e,n){var r=n("5135"),o=n("56ef"),i=n("06cf"),a=n("9bf2");t.exports=function(t,e){for(var n=o(e),c=a.f,s=i.f,u=0;u1&&void 0!==arguments[1]?arguments[1]:{};if(!u.installed){u.installed=!0,c["a"]!==t&&Object(s["b"])("Multiple instances of Vue detected\nSee https://github.com/vuetifyjs/vuetify/issues/4068\n\nIf you're seeing \"$attrs is readonly\", it's caused by this");var n=e.components||{},r=e.directives||{};for(var o in r){var i=r[o];t.directive(o,i)}(function e(n){if(n){for(var r in n){var o=n[r];o&&!e(o.$_vuetify_subcomponents)&&t.component(r,o)}return!0}return!1})(n),t.$_vuetify_installed||(t.$_vuetify_installed=!0,t.mixin({beforeCreate:function(){var e=this.$options;e.vuetify?(e.vuetify.init(this,this.$ssrContext),this.$vuetify=t.observable(e.vuetify.framework)):this.$vuetify=e.parent&&e.parent.$vuetify||this},beforeMount:function(){this.$options.vuetify&&this.$el&&this.$el.hasAttribute("data-server-rendered")&&(this.$vuetify.isHydrating=!0,this.$vuetify.breakpoint.update(!0))},mounted:function(){this.$options.vuetify&&this.$vuetify.isHydrating&&(this.$vuetify.isHydrating=!1,this.$vuetify.breakpoint.update())}}))}}n("a4d3"),n("b64b");function f(t,e){if(null==t)return{};var n,r,o={},i=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}function l(t,e){if(null==t)return{};var n,r,o=f(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function p(t,e){return p=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},p(t,e)}function d(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&p(t,e)}n("4ae1"),n("3410");function h(t){return h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},h(t)}function v(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}var y=n("7037"),m=n.n(y);function g(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function b(t,e){return!e||"object"!==m()(e)&&"function"!==typeof e?g(t):e}function w(t){var e=v();return function(){var n,r=h(t);if(e){var o=h(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return b(this,n)}}n("95ed");var x={badge:"Badge",close:"Close",dataIterator:{noResultsText:"No matching records found",loadingText:"Loading items..."},dataTable:{itemsPerPageText:"Rows per page:",ariaLabel:{sortDescending:"Sorted descending.",sortAscending:"Sorted ascending.",sortNone:"Not sorted.",activateNone:"Activate to remove sorting.",activateDescending:"Activate to sort descending.",activateAscending:"Activate to sort ascending."},sortBy:"Sort by"},dataFooter:{itemsPerPageText:"Items per page:",itemsPerPageAll:"All",nextPage:"Next page",prevPage:"Previous page",firstPage:"First page",lastPage:"Last page",pageText:"{0}-{1} of {2}"},datePicker:{itemsSelected:"{0} selected",nextMonthAriaLabel:"Next month",nextYearAriaLabel:"Next year",prevMonthAriaLabel:"Previous month",prevYearAriaLabel:"Previous year"},noDataText:"No data available",carousel:{prev:"Previous visual",next:"Next visual",ariaLabel:{delimiter:"Carousel slide {0} of {1}"}},calendar:{moreEvents:"{0} more"},fileInput:{counter:"{0} files",counterSize:"{0} files ({1} in total)"},timePicker:{am:"AM",pm:"PM"},pagination:{ariaLabel:{wrapper:"Pagination Navigation",next:"Next page",previous:"Previous page",page:"Goto Page {0}",currentPage:"Current Page, Page {0}"}},rating:{ariaLabel:{icon:"Rating {0} of {1}"}}},_={breakpoint:{mobileBreakpoint:1264,scrollBarWidth:16,thresholds:{xs:600,sm:960,md:1280,lg:1920}},icons:{iconfont:"mdi",values:{}},lang:{current:"en",locales:{en:x},t:void 0},rtl:!1,theme:{dark:!1,default:"light",disable:!1,options:{cspNonce:void 0,customProperties:void 0,minifyTheme:void 0,themeCache:void 0,variations:!0},themes:{light:{primary:"#1976D2",secondary:"#424242",accent:"#82B1FF",error:"#FF5252",info:"#2196F3",success:"#4CAF50",warning:"#FB8C00"},dark:{primary:"#2196F3",secondary:"#424242",accent:"#FF4081",error:"#FF5252",info:"#2196F3",success:"#4CAF50",warning:"#FB8C00"}}}},O=n("80d2"),k=function(){function t(){o(this,t),this.framework={}}return a(t,[{key:"init",value:function(t,e){}}]),t}(),C=["preset"],S=function(t){d(n,t);var e=w(n);function n(t,r){var i;o(this,n),i=e.call(this);var a=Object(O["l"])({},_),c=r.userPreset,u=c.preset,f=void 0===u?{}:u,p=l(c,C);return null!=f.preset&&Object(s["c"])("Global presets do not support the **preset** option, it can be safely omitted"),r.preset=Object(O["l"])(Object(O["l"])(a,f),p),i}return n}(k);S.property="presets";var A=n("ade3"),L=(n("07ac"),function(t){d(n,t);var e=w(n);function n(){var t;return o(this,n),t=e.apply(this,arguments),t.bar=0,t.top=0,t.left=0,t.insetFooter=0,t.right=0,t.bottom=0,t.footer=0,t.application={bar:{},top:{},left:{},insetFooter:{},right:{},bottom:{},footer:{}},t}return a(n,[{key:"register",value:function(t,e,n){this.application[e]=Object(A["a"])({},t,n),this.update(e)}},{key:"unregister",value:function(t,e){null!=this.application[e][t]&&(delete this.application[e][t],this.update(e))}},{key:"update",value:function(t){this[t]=Object.values(this.application[t]).reduce((function(t,e){return t+e}),0)}}]),n}(k));L.property="application";n("b0c0");var j=function(t){d(n,t);var e=w(n);function n(t){var r;o(this,n),r=e.call(this),r.xs=!1,r.sm=!1,r.md=!1,r.lg=!1,r.xl=!1,r.xsOnly=!1,r.smOnly=!1,r.smAndDown=!1,r.smAndUp=!1,r.mdOnly=!1,r.mdAndDown=!1,r.mdAndUp=!1,r.lgOnly=!1,r.lgAndDown=!1,r.lgAndUp=!1,r.xlOnly=!1,r.name="xs",r.height=0,r.width=0,r.mobile=!0,r.resizeTimeout=0;var i=t[n.property],a=i.mobileBreakpoint,c=i.scrollBarWidth,s=i.thresholds;return r.mobileBreakpoint=a,r.scrollBarWidth=c,r.thresholds=s,r}return a(n,[{key:"init",value:function(){this.update(),"undefined"!==typeof window&&window.addEventListener("resize",this.onResize.bind(this),{passive:!0})}},{key:"update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=t?0:this.getClientHeight(),n=t?0:this.getClientWidth(),r=n=this.thresholds.lg-this.scrollBarWidth;switch(this.height=e,this.width=n,this.xs=r,this.sm=o,this.md=i,this.lg=a,this.xl=c,this.xsOnly=r,this.smOnly=o,this.smAndDown=(r||o)&&!(i||a||c),this.smAndUp=!r&&(o||i||a||c),this.mdOnly=i,this.mdAndDown=(r||o||i)&&!(a||c),this.mdAndUp=!(r||o)&&(i||a||c),this.lgOnly=a,this.lgAndDown=(r||o||i||a)&&!c,this.lgAndUp=!(r||o||i)&&(a||c),this.xlOnly=c,!0){case r:this.name="xs";break;case o:this.name="sm";break;case i:this.name="md";break;case a:this.name="lg";break;default:this.name="xl";break}if("number"!==typeof this.mobileBreakpoint){var s={xs:0,sm:1,md:2,lg:3,xl:4},u=s[this.name],f=s[this.mobileBreakpoint];this.mobile=u<=f}else this.mobile=n1&&void 0!==arguments[1]?arguments[1]:{},n=Object(E["a"])({container:document.scrollingElement||document.body||document.documentElement,duration:500,offset:0,easing:"easeInOutCubic",appOffset:!0},e),o=q(n.container);if(n.appOffset&&G.framework.application){var i=o.classList.contains("v-navigation-drawer"),a=o.classList.contains("v-navigation-drawer--clipped"),c=G.framework.application,s=c.bar,u=c.top;n.offset+=s,i&&!a||(n.offset+=u)}var f,l=performance.now();f="number"===typeof t?z(t)-n.offset:z(t)-z(o)-n.offset;var p=o.scrollTop;if(f===p)return Promise.resolve(f);var d="function"===typeof n.easing?n.easing:r[n.easing];if(!d)throw new TypeError('Easing function "'.concat(n.easing,'" not found.'));return new Promise((function(t){return requestAnimationFrame((function e(r){var i=r-l,a=Math.abs(n.duration?Math.min(i/n.duration,1):1);o.scrollTop=Math.floor(p+(f-p)*d(a));var c=o===document.body?document.documentElement.clientHeight:o.clientHeight;if(1===a||c+o.scrollTop===o.scrollHeight)return t(f);requestAnimationFrame(e)}))}))}G.framework={},G.init=function(){};var K=function(t){d(n,t);var e=w(n);function n(){var t;return o(this,n),t=e.call(this),b(t,G)}return n}(k);K.property="goTo";n("ddb0"),n("dca8");var Q={complete:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z",cancel:"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z",close:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",delete:"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z",clear:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",success:"M12,2C17.52,2 22,6.48 22,12C22,17.52 17.52,22 12,22C6.48,22 2,17.52 2,12C2,6.48 6.48,2 12,2M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z",info:"M13,9H11V7H13M13,17H11V11H13M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z",warning:"M11,4.5H13V15.5H11V4.5M13,17.5V19.5H11V17.5H13Z",error:"M13,14H11V10H13M13,18H11V16H13M1,21H23L12,2L1,21Z",prev:"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z",next:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",checkboxOn:"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z",checkboxOff:"M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z",checkboxIndeterminate:"M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z",delimiter:"M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z",sort:"M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z",expand:"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z",menu:"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z",subgroup:"M7,10L12,15L17,10H7Z",dropdown:"M7,10L12,15L17,10H7Z",radioOn:"M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2M12,7C9.24,7 7,9.24 7,12C7,14.76 9.24,17 12,17C14.76,17 17,14.76 17,12C17,9.24 14.76,7 12,7Z",radioOff:"M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z",edit:"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z",ratingEmpty:"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z",ratingFull:"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z",ratingHalf:"M12,15.4V6.1L13.71,10.13L18.09,10.5L14.77,13.39L15.76,17.67M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z",loading:"M19,8L15,12H18C18,15.31 15.31,18 12,18C11,18 10.03,17.75 9.2,17.3L7.74,18.76C8.97,19.54 10.43,20 12,20C16.42,20 20,16.42 20,12H23M6,12C6,8.69 8.69,6 12,6C13,6 13.97,6.25 14.8,6.7L16.26,5.24C15.03,4.46 13.57,4 12,4C7.58,4 4,7.58 4,12H1L5,16L9,12",first:"M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z",last:"M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z",unfold:"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z",file:"M16.5,6V17.5C16.5,19.71 14.71,21.5 12.5,21.5C10.29,21.5 8.5,19.71 8.5,17.5V5C8.5,3.62 9.62,2.5 11,2.5C12.38,2.5 13.5,3.62 13.5,5V15.5C13.5,16.05 13.05,16.5 12.5,16.5C11.95,16.5 11.5,16.05 11.5,15.5V6H10V15.5C10,16.88 11.12,18 12.5,18C13.88,18 15,16.88 15,15.5V5C15,2.79 13.21,1 11,1C8.79,1 7,2.79 7,5V17.5C7,20.54 9.46,23 12.5,23C15.54,23 18,20.54 18,17.5V6H16.5Z",plus:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",minus:"M19,13H5V11H19V13Z"},Y=Q,X={complete:"check",cancel:"cancel",close:"close",delete:"cancel",clear:"clear",success:"check_circle",info:"info",warning:"priority_high",error:"warning",prev:"chevron_left",next:"chevron_right",checkboxOn:"check_box",checkboxOff:"check_box_outline_blank",checkboxIndeterminate:"indeterminate_check_box",delimiter:"fiber_manual_record",sort:"arrow_upward",expand:"keyboard_arrow_down",menu:"menu",subgroup:"arrow_drop_down",dropdown:"arrow_drop_down",radioOn:"radio_button_checked",radioOff:"radio_button_unchecked",edit:"edit",ratingEmpty:"star_border",ratingFull:"star",ratingHalf:"star_half",loading:"cached",first:"first_page",last:"last_page",unfold:"unfold_more",file:"attach_file",plus:"add",minus:"remove"},J=X,tt={complete:"mdi-check",cancel:"mdi-close-circle",close:"mdi-close",delete:"mdi-close-circle",clear:"mdi-close",success:"mdi-check-circle",info:"mdi-information",warning:"mdi-exclamation",error:"mdi-alert",prev:"mdi-chevron-left",next:"mdi-chevron-right",checkboxOn:"mdi-checkbox-marked",checkboxOff:"mdi-checkbox-blank-outline",checkboxIndeterminate:"mdi-minus-box",delimiter:"mdi-circle",sort:"mdi-arrow-up",expand:"mdi-chevron-down",menu:"mdi-menu",subgroup:"mdi-menu-down",dropdown:"mdi-menu-down",radioOn:"mdi-radiobox-marked",radioOff:"mdi-radiobox-blank",edit:"mdi-pencil",ratingEmpty:"mdi-star-outline",ratingFull:"mdi-star",ratingHalf:"mdi-star-half-full",loading:"mdi-cached",first:"mdi-page-first",last:"mdi-page-last",unfold:"mdi-unfold-more-horizontal",file:"mdi-paperclip",plus:"mdi-plus",minus:"mdi-minus"},et=tt,nt={complete:"fas fa-check",cancel:"fas fa-times-circle",close:"fas fa-times",delete:"fas fa-times-circle",clear:"fas fa-times-circle",success:"fas fa-check-circle",info:"fas fa-info-circle",warning:"fas fa-exclamation",error:"fas fa-exclamation-triangle",prev:"fas fa-chevron-left",next:"fas fa-chevron-right",checkboxOn:"fas fa-check-square",checkboxOff:"far fa-square",checkboxIndeterminate:"fas fa-minus-square",delimiter:"fas fa-circle",sort:"fas fa-sort-up",expand:"fas fa-chevron-down",menu:"fas fa-bars",subgroup:"fas fa-caret-down",dropdown:"fas fa-caret-down",radioOn:"far fa-dot-circle",radioOff:"far fa-circle",edit:"fas fa-edit",ratingEmpty:"far fa-star",ratingFull:"fas fa-star",ratingHalf:"fas fa-star-half",loading:"fas fa-sync",first:"fas fa-step-backward",last:"fas fa-step-forward",unfold:"fas fa-arrows-alt-v",file:"fas fa-paperclip",plus:"fas fa-plus",minus:"fas fa-minus"},rt=nt,ot={complete:"fa fa-check",cancel:"fa fa-times-circle",close:"fa fa-times",delete:"fa fa-times-circle",clear:"fa fa-times-circle",success:"fa fa-check-circle",info:"fa fa-info-circle",warning:"fa fa-exclamation",error:"fa fa-exclamation-triangle",prev:"fa fa-chevron-left",next:"fa fa-chevron-right",checkboxOn:"fa fa-check-square",checkboxOff:"fa fa-square-o",checkboxIndeterminate:"fa fa-minus-square",delimiter:"fa fa-circle",sort:"fa fa-sort-up",expand:"fa fa-chevron-down",menu:"fa fa-bars",subgroup:"fa fa-caret-down",dropdown:"fa fa-caret-down",radioOn:"fa fa-dot-circle-o",radioOff:"fa fa-circle-o",edit:"fa fa-pencil",ratingEmpty:"fa fa-star-o",ratingFull:"fa fa-star",ratingHalf:"fa fa-star-half-o",loading:"fa fa-refresh",first:"fa fa-step-backward",last:"fa fa-step-forward",unfold:"fa fa-angle-double-down",file:"fa fa-paperclip",plus:"fa fa-plus",minus:"fa fa-minus"},it=ot;n("ac1f"),n("1276");function at(t,e){var n={};for(var r in e)n[r]={component:t,props:{icon:e[r].split(" fa-")}};return n}var ct=at("font-awesome-icon",rt),st=Object.freeze({mdiSvg:Y,md:J,mdi:et,fa:rt,fa4:it,faSvg:ct}),ut=function(t){d(n,t);var e=w(n);function n(t){var r;o(this,n),r=e.call(this);var i=t[n.property],a=i.iconfont,c=i.values,s=i.component;return r.component=s,r.iconfont=a,r.values=Object(O["l"])(st[a],c),r}return n}(k);ut.property="icons";n("e01a"),n("5319"),n("2ca0"),n("99af");var ft="$vuetify.",lt=Symbol("Lang fallback");function pt(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0,o=e.replace(ft,""),i=Object(O["h"])(t,o,lt);return i===lt&&(n?(Object(s["b"])('Translation key "'.concat(o,'" not found in fallback')),i=e):(Object(s["c"])('Translation key "'.concat(o,'" not found, falling back to default')),i=pt(r,e,!0,r))),i}var dt=function(t){d(n,t);var e=w(n);function n(t){var r;o(this,n),r=e.call(this),r.defaultLocale="en";var i=t[n.property],a=i.current,c=i.locales,s=i.t;return r.current=a,r.locales=c,r.translator=s||r.defaultTranslator,r}return a(n,[{key:"currentLocale",value:function(t){var e=this.locales[this.current],n=this.locales[this.defaultLocale];return pt(e,t,!1,n)}},{key:"t",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1?e-1:0),r=1;rMath.pow(gt,3)?Math.cbrt(t):t/(3*Math.pow(gt,2))+4/29},wt=function(t){return t>gt?Math.pow(t,3):3*Math.pow(gt,2)*(t-4/29)};function xt(t){var e=bt,n=e(t[1]);return[116*n-16,500*(e(t[0]/.95047)-n),200*(n-e(t[2]/1.08883))]}function _t(t){var e=wt,n=(t[0]+16)/116;return[.95047*e(n+t[1]/500),e(n),1.08883*e(n-t[2]/200)]}var Ot=["anchor"],kt=["anchor"];function Ct(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=t.anchor,o=l(t,Ot),i=Object.keys(o),a={},c=0;c1&&void 0!==arguments[1]?arguments[1]:"base";return"--v-".concat(t,"-").concat(e)},jt=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"base";return"var(".concat(Lt(t,e),")")};function Et(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.anchor,r=l(t,kt),o=Object.keys(r);if(!o.length)return"";var i="",a="",c=e?jt("anchor"):n;a+=".v-application a { color: ".concat(c,"; }"),e&&(i+=" ".concat(Lt("anchor"),": ").concat(n,";\n"));for(var s=0;s0;--r)n["lighten".concat(r)]=Object(yt["c"])(Tt(e,r));for(var o=1;o<=4;++o)n["darken".concat(o)]=Object(yt["c"])(Mt(e,o));return n}function Tt(t,e){var n=xt(mt["b"](t));return n[0]=n[0]+10*e,mt["a"](_t(n))}function Mt(t,e){var n=xt(mt["b"](t));return n[0]=n[0]-10*e,mt["a"](_t(n))}var Pt=function(t){d(n,t);var e=w(n);function n(t){var r;o(this,n),r=e.call(this),r.disabled=!1,r.isDark=null,r.unwatch=null,r.vueMeta=null;var i=t[n.property],a=i.dark,c=i.disable,s=i.options,u=i.themes;return r.dark=Boolean(a),r.defaults=r.themes=u,r.options=s,c?(r.disabled=!0,b(r)):(r.themes={dark:r.fillVariant(u.dark,!0),light:r.fillVariant(u.light,!1)},r)}return a(n,[{key:"css",set:function(t){this.vueMeta?this.isVueMeta23&&this.applyVueMeta23():this.checkOrCreateStyleElement()&&(this.styleEl.innerHTML=t)}},{key:"dark",get:function(){return Boolean(this.isDark)},set:function(t){var e=this.isDark;this.isDark=t,null!=e&&this.applyTheme()}},{key:"applyTheme",value:function(){if(this.disabled)return this.clearCss();this.css=this.generatedStyles}},{key:"clearCss",value:function(){this.css=""}},{key:"init",value:function(t,e){this.disabled||(t.$meta?this.initVueMeta(t):e&&this.initSSR(e),this.initTheme(t))}},{key:"setTheme",value:function(t,e){this.themes[t]=Object.assign(this.themes[t],e),this.applyTheme()}},{key:"resetThemes",value:function(){this.themes.light=Object.assign({},this.defaults.light),this.themes.dark=Object.assign({},this.defaults.dark),this.applyTheme()}},{key:"checkOrCreateStyleElement",value:function(){return this.styleEl=document.getElementById("vuetify-theme-stylesheet"),!!this.styleEl||(this.genStyleElement(),Boolean(this.styleEl))}},{key:"fillVariant",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=this.themes[e?"dark":"light"];return Object.assign({},n,t)}},{key:"genStyleElement",value:function(){"undefined"!==typeof document&&(this.styleEl=document.createElement("style"),this.styleEl.type="text/css",this.styleEl.id="vuetify-theme-stylesheet",this.options.cspNonce&&this.styleEl.setAttribute("nonce",this.options.cspNonce),document.head.appendChild(this.styleEl))}},{key:"initVueMeta",value:function(t){var e=this;if(this.vueMeta=t.$meta(),this.isVueMeta23)t.$nextTick((function(){e.applyVueMeta23()}));else{var n="function"===typeof this.vueMeta.getOptions?this.vueMeta.getOptions().keyName:"metaInfo",r=t.$options[n]||{};t.$options[n]=function(){r.style=r.style||[];var t=r.style.find((function(t){return"vuetify-theme-stylesheet"===t.id}));return t?t.cssText=e.generatedStyles:r.style.push({cssText:e.generatedStyles,type:"text/css",id:"vuetify-theme-stylesheet",nonce:(e.options||{}).cspNonce}),r}}}},{key:"applyVueMeta23",value:function(){var t=this.vueMeta.addApp("vuetify"),e=t.set;e({style:[{cssText:this.generatedStyles,type:"text/css",id:"vuetify-theme-stylesheet",nonce:this.options.cspNonce}]})}},{key:"initSSR",value:function(t){var e=this.options.cspNonce?' nonce="'.concat(this.options.cspNonce,'"'):"";t.head=t.head||"",t.head+='")}},{key:"initTheme",value:function(t){var e=this;"undefined"!==typeof document&&(this.unwatch&&(this.unwatch(),this.unwatch=null),t.$once("hook:created",(function(){var n=c["a"].observable({themes:e.themes});e.unwatch=t.$watch((function(){return n.themes}),(function(){return e.applyTheme()}),{deep:!0})})),this.applyTheme())}},{key:"currentTheme",get:function(){var t=this.dark?"dark":"light";return this.themes[t]}},{key:"generatedStyles",get:function(){var t,e=this.parsedTheme,n=this.options||{};return null!=n.themeCache&&(t=n.themeCache.get(e),null!=t)||(t=Et(e,n.customProperties),null!=n.minifyTheme&&(t=n.minifyTheme(t)),null!=n.themeCache&&n.themeCache.set(e,t)),t}},{key:"parsedTheme",get:function(){return Ct(this.currentTheme||{},void 0,Object(O["g"])(this.options,["variations"],!0))}},{key:"isVueMeta23",get:function(){return"function"===typeof this.vueMeta.addApp}}]),n}(k);Pt.property="theme";var It=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};o(this,t),this.framework={isHydrating:!1},this.installed=[],this.preset={},this.userPreset={},this.userPreset=e,this.use(S),this.use(L),this.use(j),this.use(K),this.use(ut),this.use(dt),this.use(Pt)}return a(t,[{key:"init",value:function(t,e){var n=this;this.installed.forEach((function(r){var o=n.framework[r];o.framework=n.framework,o.init(t,e)})),this.framework.rtl=Boolean(this.preset.rtl)}},{key:"use",value:function(t){var e=t.property;this.installed.includes(e)||(this.framework[e]=new t(this.preset,this),this.installed.push(e))}}]),t}();It.install=u,It.installed=!1,It.version="2.5.6",It.config={silent:!1}},f5df:function(t,e,n){var r=n("00ee"),o=n("c6b6"),i=n("b622"),a=i("toStringTag"),c="Arguments"==o(function(){return arguments}()),s=function(t,e){try{return t[e]}catch(n){}};t.exports=r?o:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=s(e=Object(t),a))?n:c?o(e):"Object"==(r=o(e))&&"function"==typeof e.callee?"Arguments":r}},f6c4:function(t,e,n){"use strict";n("bd0c");var r=n("2b0e"),o=r["a"].extend({name:"ssr-bootable",data:function(){return{isBooted:!1}},mounted:function(){var t=this;window.requestAnimationFrame((function(){t.$el.setAttribute("data-booted","true"),t.isBooted=!0}))}});e["a"]=o.extend({name:"v-main",props:{tag:{type:String,default:"main"}},computed:{styles:function(){var t=this.$vuetify.application,e=t.bar,n=t.top,r=t.right,o=t.footer,i=t.insetFooter,a=t.bottom,c=t.left;return{paddingTop:"".concat(n+e,"px"),paddingRight:"".concat(r,"px"),paddingBottom:"".concat(o+i+a,"px"),paddingLeft:"".concat(c,"px")}}},render:function(t){var e={staticClass:"v-main",style:this.styles,ref:"main"};return t(this.tag,e,[t("div",{staticClass:"v-main__wrap"},this.$slots.default)])}})},f748:function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},f772:function(t,e,n){var r=n("5692"),o=n("90e3"),i=r("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},fb6a:function(t,e,n){"use strict";var r=n("23e7"),o=n("861d"),i=n("e8b5"),a=n("23cb"),c=n("50c4"),s=n("fc6a"),u=n("8418"),f=n("b622"),l=n("1dde"),p=l("slice"),d=f("species"),h=[].slice,v=Math.max;r({target:"Array",proto:!0,forced:!p},{slice:function(t,e){var n,r,f,l=s(this),p=c(l.length),y=a(t,p),m=a(void 0===e?p:e,p);if(i(l)&&(n=l.constructor,"function"!=typeof n||n!==Array&&!i(n.prototype)?o(n)&&(n=n[d],null===n&&(n=void 0)):n=void 0,n===Array||void 0===n))return h.call(l,y,m);for(r=new(void 0===n?Array:n)(v(m-y,0)),f=0;y=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}function E(t){return t.replace(/\/\//g,"/")}var $=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},T=Y,M=D,P=F,I=B,R=Q,N=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function D(t,e){var n,r=[],o=0,i=0,a="",c=e&&e.delimiter||"/";while(null!=(n=N.exec(t))){var s=n[0],u=n[1],f=n.index;if(a+=t.slice(i,f),i=f+s.length,u)a+=u[1];else{var l=t[i],p=n[2],d=n[3],h=n[4],v=n[5],y=n[6],m=n[7];a&&(r.push(a),a="");var g=null!=p&&null!=l&&l!==p,b="+"===y||"*"===y,w="?"===y||"*"===y,x=n[2]||c,_=h||v;r.push({name:d||o++,prefix:p||"",delimiter:x,optional:w,repeat:b,partial:g,asterisk:!!m,pattern:_?z(_):m?".*":"[^"+U(x)+"]+?"})}}return i1||!k.length)return 0===k.length?t():t("span",{},k)}if("a"===this.tag)O.on=x,O.attrs={href:s,"aria-current":g};else{var C=ct(this.$slots.default);if(C){C.isStatic=!1;var S=C.data=o({},C.data);for(var A in S.on=S.on||{},S.on){var L=S.on[A];A in x&&(S.on[A]=Array.isArray(L)?L:[L])}for(var j in x)j in S.on?S.on[j].push(x[j]):S.on[j]=b;var E=C.data.attrs=o({},C.data.attrs);E.href=s,E["aria-current"]=g}else O.on=x}return t(this.tag,O,this.$slots.default)}};function at(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&!t.defaultPrevented&&(void 0===t.button||0===t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function ct(t){if(t)for(var e,n=0;n-1&&(c.params[l]=n.params[l]);return c.path=J(u.path,c.params,'named route "'+s+'"'),p(u,c,a)}if(c.path){c.params={};for(var d=0;d=t.length?n():t[o]?e(t[o],(function(){r(o+1)})):r(o+1)};r(0)}var Ft={redirected:2,aborted:4,cancelled:8,duplicated:16};function Vt(t,e){return zt(t,e,Ft.redirected,'Redirected when going from "'+t.fullPath+'" to "'+Wt(e)+'" via a navigation guard.')}function Ht(t,e){var n=zt(t,e,Ft.duplicated,'Avoided redundant navigation to current location: "'+t.fullPath+'".');return n.name="NavigationDuplicated",n}function Bt(t,e){return zt(t,e,Ft.cancelled,'Navigation cancelled from "'+t.fullPath+'" to "'+e.fullPath+'" with a new navigation.')}function Ut(t,e){return zt(t,e,Ft.aborted,'Navigation aborted from "'+t.fullPath+'" to "'+e.fullPath+'" via a navigation guard.')}function zt(t,e,n,r){var o=new Error(r);return o._isRouter=!0,o.from=t,o.to=e,o.type=n,o}var qt=["params","query","hash"];function Wt(t){if("string"===typeof t)return t;if("path"in t)return t.path;var e={};return qt.forEach((function(n){n in t&&(e[n]=t[n])})),JSON.stringify(e,null,2)}function Zt(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function Gt(t,e){return Zt(t)&&t._isRouter&&(null==e||t.type===e)}function Kt(t){return function(e,n,r){var o=!1,i=0,a=null;Qt(t,(function(t,e,n,c){if("function"===typeof t&&void 0===t.cid){o=!0,i++;var s,u=te((function(e){Jt(e)&&(e=e.default),t.resolved="function"===typeof e?e:et.extend(e),n.components[c]=e,i--,i<=0&&r()})),f=te((function(t){var e="Failed to resolve async component "+c+": "+t;a||(a=Zt(t)?t:new Error(e),r(a))}));try{s=t(u,f)}catch(p){f(p)}if(s)if("function"===typeof s.then)s.then(u,f);else{var l=s.component;l&&"function"===typeof l.then&&l.then(u,f)}}})),o||r()}}function Qt(t,e){return Yt(t.map((function(t){return Object.keys(t.components).map((function(n){return e(t.components[n],t.instances[n],t,n)}))})))}function Yt(t){return Array.prototype.concat.apply([],t)}var Xt="function"===typeof Symbol&&"symbol"===typeof Symbol.toStringTag;function Jt(t){return t.__esModule||Xt&&"Module"===t[Symbol.toStringTag]}function te(t){var e=!1;return function(){var n=[],r=arguments.length;while(r--)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var ee=function(t,e){this.router=t,this.base=ne(e),this.current=m,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function ne(t){if(!t)if(ut){var e=document.querySelector("base");t=e&&e.getAttribute("href")||"/",t=t.replace(/^https?:\/\/[^\/]+/,"")}else t="/";return"/"!==t.charAt(0)&&(t="/"+t),t.replace(/\/$/,"")}function re(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n0)){var e=this.router,n=e.options.scrollBehavior,r=It&&n;r&&this.listeners.push(Ot());var o=function(){var n=t.current,o=pe(t.base);t.current===m&&o===t._startLocation||t.transitionTo(o,(function(t){r&&kt(e,t,n,!0)}))};window.addEventListener("popstate",o),this.listeners.push((function(){window.removeEventListener("popstate",o)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,(function(t){Rt(E(r.base+t.fullPath)),kt(r.router,t,i,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,(function(t){Nt(E(r.base+t.fullPath)),kt(r.router,t,i,!1),e&&e(t)}),n)},e.prototype.ensureURL=function(t){if(pe(this.base)!==this.current.fullPath){var e=E(this.base+this.current.fullPath);t?Rt(e):Nt(e)}},e.prototype.getCurrentLocation=function(){return pe(this.base)},e}(ee);function pe(t){var e=window.location.pathname,n=e.toLowerCase(),r=t.toLowerCase();return!t||n!==r&&0!==n.indexOf(E(r+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var de=function(t){function e(e,n,r){t.call(this,e,n),r&&he(this.base)||ve()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router,n=e.options.scrollBehavior,r=It&&n;r&&this.listeners.push(Ot());var o=function(){var e=t.current;ve()&&t.transitionTo(ye(),(function(n){r&&kt(t.router,n,e,!0),It||be(n.fullPath)}))},i=It?"popstate":"hashchange";window.addEventListener(i,o),this.listeners.push((function(){window.removeEventListener(i,o)}))}},e.prototype.push=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,(function(t){ge(t.fullPath),kt(r.router,t,i,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,(function(t){be(t.fullPath),kt(r.router,t,i,!1),e&&e(t)}),n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;ye()!==e&&(t?ge(e):be(e))},e.prototype.getCurrentLocation=function(){return ye()},e}(ee);function he(t){var e=pe(t);if(!/^\/#/.test(e))return window.location.replace(E(t+"/#"+e)),!0}function ve(){var t=ye();return"/"===t.charAt(0)||(be("/"+t),!1)}function ye(){var t=window.location.href,e=t.indexOf("#");return e<0?"":(t=t.slice(e+1),t)}function me(t){var e=window.location.href,n=e.indexOf("#"),r=n>=0?e.slice(0,n):e;return r+"#"+t}function ge(t){It?Rt(me(t)):window.location.hash=t}function be(t){It?Nt(me(t)):window.location.replace(me(t))}var we=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)}),n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){var t=e.current;e.index=n,e.updateRoute(r),e.router.afterHooks.forEach((function(e){e&&e(r,t)}))}),(function(t){Gt(t,Ft.duplicated)&&(e.index=n)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(ee),xe=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=ht(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!It&&!1!==t.fallback,this.fallback&&(e="hash"),ut||(e="abstract"),this.mode=e,e){case"history":this.history=new le(this,t.base);break;case"hash":this.history=new de(this,t.base,this.fallback);break;case"abstract":this.history=new we(this,t.base);break;default:0}},_e={currentRoute:{configurable:!0}};function Oe(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}function ke(t,e,n){var r="hash"===n?"#"+e:e;return t?E(t+"/"+r):r}xe.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},_e.currentRoute.get=function(){return this.history&&this.history.current},xe.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()})),!this.app){this.app=t;var n=this.history;if(n instanceof le||n instanceof de){var r=function(t){var r=n.current,o=e.options.scrollBehavior,i=It&&o;i&&"fullPath"in t&&kt(e,t,r,!1)},o=function(t){n.setupListeners(),r(t)};n.transitionTo(n.getCurrentLocation(),o,o)}n.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},xe.prototype.beforeEach=function(t){return Oe(this.beforeHooks,t)},xe.prototype.beforeResolve=function(t){return Oe(this.resolveHooks,t)},xe.prototype.afterEach=function(t){return Oe(this.afterHooks,t)},xe.prototype.onReady=function(t,e){this.history.onReady(t,e)},xe.prototype.onError=function(t){this.history.onError(t)},xe.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!==typeof Promise)return new Promise((function(e,n){r.history.push(t,e,n)}));this.history.push(t,e,n)},xe.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!==typeof Promise)return new Promise((function(e,n){r.history.replace(t,e,n)}));this.history.replace(t,e,n)},xe.prototype.go=function(t){this.history.go(t)},xe.prototype.back=function(){this.go(-1)},xe.prototype.forward=function(){this.go(1)},xe.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},xe.prototype.resolve=function(t,e,n){e=e||this.history.current;var r=tt(t,e,n,this),o=this.match(r,e),i=o.redirectedFrom||o.fullPath,a=this.history.base,c=ke(a,i,this.mode);return{location:r,route:o,href:c,normalizedTo:r,resolved:o}},xe.prototype.getRoutes=function(){return this.matcher.getRoutes()},xe.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==m&&this.history.transitionTo(this.history.getCurrentLocation())},xe.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==m&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(xe.prototype,_e),xe.install=st,xe.version="3.5.2",xe.isNavigationFailure=Gt,xe.NavigationFailureType=Ft,xe.START_LOCATION=m,ut&&window.Vue&&window.Vue.use(xe),e["a"]=xe},"8da5":function(t,e,n){"use strict";n.d(e,"a",(function(){return s})),n.d(e,"b",(function(){return u}));var r=n("80d2"),o=[[3.2406,-1.5372,-.4986],[-.9689,1.8758,.0415],[.0557,-.204,1.057]],i=function(t){return t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055},a=[[.4124,.3576,.1805],[.2126,.7152,.0722],[.0193,.1192,.9505]],c=function(t){return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)};function s(t){for(var e=Array(3),n=i,a=o,c=0;c<3;++c)e[c]=Math.round(255*Object(r["c"])(n(a[c][0]*t[0]+a[c][1]*t[1]+a[c][2]*t[2])));return(e[0]<<16)+(e[1]<<8)+(e[2]<<0)}function u(t){for(var e=[0,0,0],n=c,r=a,o=n((t>>16&255)/255),i=n((t>>8&255)/255),s=n((t>>0&255)/255),u=0;u<3;++u)e[u]=r[u][0]*o+r[u][1]*i+r[u][2]*s;return e}},"90e3":function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++n+r).toString(36)}},9112:function(t,e,n){var r=n("83ab"),o=n("9bf2"),i=n("5c6c");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},9263:function(t,e,n){"use strict";var r=n("ad6d"),o=n("9f7f"),i=n("5692"),a=n("7c73"),c=n("69f3").get,s=n("fce3"),u=n("107c"),f=RegExp.prototype.exec,l=i("native-string-replace",String.prototype.replace),p=f,d=function(){var t=/a/,e=/b*/g;return f.call(t,"a"),f.call(e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),h=o.UNSUPPORTED_Y||o.BROKEN_CARET,v=void 0!==/()??/.exec("")[1],y=d||v||h||s||u;y&&(p=function(t){var e,n,o,i,s,u,y,m=this,g=c(m),b=g.raw;if(b)return b.lastIndex=m.lastIndex,e=p.call(b,t),m.lastIndex=b.lastIndex,e;var w=g.groups,x=h&&m.sticky,_=r.call(m),O=m.source,k=0,C=t;if(x&&(_=_.replace("y",""),-1===_.indexOf("g")&&(_+="g"),C=String(t).slice(m.lastIndex),m.lastIndex>0&&(!m.multiline||m.multiline&&"\n"!==t[m.lastIndex-1])&&(O="(?: "+O+")",C=" "+C,k++),n=new RegExp("^(?:"+O+")",_)),v&&(n=new RegExp("^"+O+"$(?!\\s)",_)),d&&(o=m.lastIndex),i=f.call(x?n:m,C),x?i?(i.input=i.input.slice(k),i[0]=i[0].slice(k),i.index=m.lastIndex,m.lastIndex+=i[0].length):m.lastIndex=0:d&&i&&(m.lastIndex=m.global?i.index+i[0].length:o),v&&i&&i.length>1&&l.call(i[0],n,(function(){for(s=1;s=51||!o((function(){var t=[];return t[h]=!1,t.concat()[0]!==t})),g=l("concat"),b=function(t){if(!a(t))return!1;var e=t[h];return void 0!==e?!!e:i(t)},w=!m||!g;r({target:"Array",proto:!0,forced:w},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;ev)throw TypeError(y);for(n=0;n=v)throw TypeError(y);u(l,p++,i)}return l.length=p,l}})},"9bdd":function(t,e,n){var r=n("825a"),o=n("2a62");t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(a){throw o(t),a}}},"9bf2":function(t,e,n){var r=n("83ab"),o=n("0cfb"),i=n("825a"),a=n("c04e"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},"9ed3":function(t,e,n){"use strict";var r=n("ae93").IteratorPrototype,o=n("7c73"),i=n("5c6c"),a=n("d44e"),c=n("3f8c"),s=function(){return this};t.exports=function(t,e,n){var u=e+" Iterator";return t.prototype=o(r,{next:i(1,n)}),a(t,u,!1,!0),c[u]=s,t}},"9f7f":function(t,e,n){var r=n("d039"),o=function(t,e){return RegExp(t,e)};e.UNSUPPORTED_Y=r((function(){var t=o("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),e.BROKEN_CARET=r((function(){var t=o("^r","gy");return t.lastIndex=2,null!=t.exec("str")}))},a15b:function(t,e,n){"use strict";var r=n("23e7"),o=n("44ad"),i=n("fc6a"),a=n("a640"),c=[].join,s=o!=Object,u=a("join",",");r({target:"Array",proto:!0,forced:s||!u},{join:function(t){return c.call(i(this),void 0===t?",":t)}})},a4b4:function(t,e,n){var r=n("342f");t.exports=/web0s(?!.*chrome)/i.test(r)},a4d3:function(t,e,n){"use strict";var r=n("23e7"),o=n("da84"),i=n("d066"),a=n("c430"),c=n("83ab"),s=n("4930"),u=n("fdbf"),f=n("d039"),l=n("5135"),p=n("e8b5"),d=n("861d"),h=n("825a"),v=n("7b0b"),y=n("fc6a"),m=n("c04e"),g=n("5c6c"),b=n("7c73"),w=n("df75"),x=n("241c"),_=n("057f"),O=n("7418"),k=n("06cf"),C=n("9bf2"),S=n("d1e7"),A=n("9112"),L=n("6eeb"),j=n("5692"),E=n("f772"),$=n("d012"),T=n("90e3"),M=n("b622"),P=n("e538"),I=n("746f"),R=n("d44e"),N=n("69f3"),D=n("b727").forEach,F=E("hidden"),V="Symbol",H="prototype",B=M("toPrimitive"),U=N.set,z=N.getterFor(V),q=Object[H],W=o.Symbol,Z=i("JSON","stringify"),G=k.f,K=C.f,Q=_.f,Y=S.f,X=j("symbols"),J=j("op-symbols"),tt=j("string-to-symbol-registry"),et=j("symbol-to-string-registry"),nt=j("wks"),rt=o.QObject,ot=!rt||!rt[H]||!rt[H].findChild,it=c&&f((function(){return 7!=b(K({},"a",{get:function(){return K(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=G(q,e);r&&delete q[e],K(t,e,n),r&&t!==q&&K(q,e,r)}:K,at=function(t,e){var n=X[t]=b(W[H]);return U(n,{type:V,tag:t,description:e}),c||(n.description=e),n},ct=u?function(t){return"symbol"==typeof t}:function(t){return Object(t)instanceof W},st=function(t,e,n){t===q&&st(J,e,n),h(t);var r=m(e,!0);return h(n),l(X,r)?(n.enumerable?(l(t,F)&&t[F][r]&&(t[F][r]=!1),n=b(n,{enumerable:g(0,!1)})):(l(t,F)||K(t,F,g(1,{})),t[F][r]=!0),it(t,r,n)):K(t,r,n)},ut=function(t,e){h(t);var n=y(e),r=w(n).concat(ht(n));return D(r,(function(e){c&&!lt.call(n,e)||st(t,e,n[e])})),t},ft=function(t,e){return void 0===e?b(t):ut(b(t),e)},lt=function(t){var e=m(t,!0),n=Y.call(this,e);return!(this===q&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,F)&&this[F][e])||n)},pt=function(t,e){var n=y(t),r=m(e,!0);if(n!==q||!l(X,r)||l(J,r)){var o=G(n,r);return!o||!l(X,r)||l(n,F)&&n[F][r]||(o.enumerable=!0),o}},dt=function(t){var e=Q(y(t)),n=[];return D(e,(function(t){l(X,t)||l($,t)||n.push(t)})),n},ht=function(t){var e=t===q,n=Q(e?J:y(t)),r=[];return D(n,(function(t){!l(X,t)||e&&!l(q,t)||r.push(X[t])})),r};if(s||(W=function(){if(this instanceof W)throw TypeError("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=T(t),n=function(t){this===q&&n.call(J,t),l(this,F)&&l(this[F],e)&&(this[F][e]=!1),it(this,e,g(1,t))};return c&&ot&&it(q,e,{configurable:!0,set:n}),at(e,t)},L(W[H],"toString",(function(){return z(this).tag})),L(W,"withoutSetter",(function(t){return at(T(t),t)})),S.f=lt,C.f=st,k.f=pt,x.f=_.f=dt,O.f=ht,P.f=function(t){return at(M(t),t)},c&&(K(W[H],"description",{configurable:!0,get:function(){return z(this).description}}),a||L(q,"propertyIsEnumerable",lt,{unsafe:!0}))),r({global:!0,wrap:!0,forced:!s,sham:!s},{Symbol:W}),D(w(nt),(function(t){I(t)})),r({target:V,stat:!0,forced:!s},{for:function(t){var e=String(t);if(l(tt,e))return tt[e];var n=W(e);return tt[e]=n,et[n]=e,n},keyFor:function(t){if(!ct(t))throw TypeError(t+" is not a symbol");if(l(et,t))return et[t]},useSetter:function(){ot=!0},useSimple:function(){ot=!1}}),r({target:"Object",stat:!0,forced:!s,sham:!c},{create:ft,defineProperty:st,defineProperties:ut,getOwnPropertyDescriptor:pt}),r({target:"Object",stat:!0,forced:!s},{getOwnPropertyNames:dt,getOwnPropertySymbols:ht}),r({target:"Object",stat:!0,forced:f((function(){O.f(1)}))},{getOwnPropertySymbols:function(t){return O.f(v(t))}}),Z){var vt=!s||f((function(){var t=W();return"[null]"!=Z([t])||"{}"!=Z({a:t})||"{}"!=Z(Object(t))}));r({target:"JSON",stat:!0,forced:vt},{stringify:function(t,e,n){var r,o=[t],i=1;while(arguments.length>i)o.push(arguments[i++]);if(r=e,(d(e)||void 0!==t)&&!ct(t))return p(e)||(e=function(t,e){if("function"==typeof r&&(e=r.call(this,t,e)),!ct(e))return e}),o[1]=e,Z.apply(null,o)}})}W[H][B]||A(W[H],B,W[H].valueOf),R(W,V),$[F]=!0},a630:function(t,e,n){var r=n("23e7"),o=n("4df4"),i=n("1c7e"),a=!i((function(t){Array.from(t)}));r({target:"Array",stat:!0,forced:a},{from:o})},a640:function(t,e,n){"use strict";var r=n("d039");t.exports=function(t,e){var n=[][t];return!!n&&r((function(){n.call(null,e||function(){throw 1},1)}))}},a691:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},a79d:function(t,e,n){"use strict";var r=n("23e7"),o=n("c430"),i=n("fea9"),a=n("d039"),c=n("d066"),s=n("4840"),u=n("cdf9"),f=n("6eeb"),l=!!i&&a((function(){i.prototype["finally"].call({then:function(){}},(function(){}))}));if(r({target:"Promise",proto:!0,real:!0,forced:l},{finally:function(t){var e=s(this,c("Promise")),n="function"==typeof t;return this.then(n?function(n){return u(e,t()).then((function(){return n}))}:t,n?function(n){return u(e,t()).then((function(){throw n}))}:t)}}),!o&&"function"==typeof i){var p=c("Promise").prototype["finally"];i.prototype["finally"]!==p&&f(i.prototype,"finally",p,{unsafe:!0})}},a9e3:function(t,e,n){"use strict";var r=n("83ab"),o=n("da84"),i=n("94ca"),a=n("6eeb"),c=n("5135"),s=n("c6b6"),u=n("7156"),f=n("c04e"),l=n("d039"),p=n("7c73"),d=n("241c").f,h=n("06cf").f,v=n("9bf2").f,y=n("58a8").trim,m="Number",g=o[m],b=g.prototype,w=s(p(b))==m,x=function(t){var e,n,r,o,i,a,c,s,u=f(t,!1);if("string"==typeof u&&u.length>2)if(u=y(u),e=u.charCodeAt(0),43===e||45===e){if(n=u.charCodeAt(2),88===n||120===n)return NaN}else if(48===e){switch(u.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+u}for(i=u.slice(2),a=i.length,c=0;co)return NaN;return parseInt(i,r)}return+u};if(i(m,!g(" 0o1")||!g("0b1")||g("+0x1"))){for(var _,O=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof O&&(w?l((function(){b.valueOf.call(n)})):s(n)!=m)?u(new g(x(e)),n,O):x(e)},k=r?d(g):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","),C=0;k.length>C;C++)c(g,_=k[C])&&!c(O,_)&&v(O,_,h(g,_));O.prototype=b,b.constructor=O,a(o,m,O)}},ab13:function(t,e,n){var r=n("b622"),o=r("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[o]=!1,"/./"[t](e)}catch(r){}}return!1}},ac1f:function(t,e,n){"use strict";var r=n("23e7"),o=n("9263");r({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},ad6d:function(t,e,n){"use strict";var r=n("825a");t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},addb:function(t,e){var n=Math.floor,r=function(t,e){var a=t.length,c=n(a/2);return a<8?o(t,e):i(r(t.slice(0,c),e),r(t.slice(c),e),e)},o=function(t,e){var n,r,o=t.length,i=1;while(i0)t[r]=t[--r];r!==i++&&(t[r]=n)}return t},i=function(t,e,n){var r=t.length,o=e.length,i=0,a=0,c=[];while(i3}))}},b041:function(t,e,n){"use strict";var r=n("00ee"),o=n("f5df");t.exports=r?{}.toString:function(){return"[object "+o(this)+"]"}},b0c0:function(t,e,n){var r=n("83ab"),o=n("9bf2").f,i=Function.prototype,a=i.toString,c=/^\s*function ([^ (]*)/,s="name";r&&!(s in i)&&o(i,s,{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return""}}})},b575:function(t,e,n){var r,o,i,a,c,s,u,f,l=n("da84"),p=n("06cf").f,d=n("2cf4").set,h=n("1cdc"),v=n("a4b4"),y=n("605d"),m=l.MutationObserver||l.WebKitMutationObserver,g=l.document,b=l.process,w=l.Promise,x=p(l,"queueMicrotask"),_=x&&x.value;_||(r=function(){var t,e;y&&(t=b.domain)&&t.exit();while(o){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},h||y||v||!m||!g?w&&w.resolve?(u=w.resolve(void 0),u.constructor=w,f=u.then,a=function(){f.call(u,r)}):a=y?function(){b.nextTick(r)}:function(){d.call(l,r)}:(c=!0,s=g.createTextNode(""),new m(r).observe(s,{characterData:!0}),a=function(){s.data=c=!c})),t.exports=_||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},b622:function(t,e,n){var r=n("da84"),o=n("5692"),i=n("5135"),a=n("90e3"),c=n("4930"),s=n("fdbf"),u=o("wks"),f=r.Symbol,l=s?f:f&&f.withoutSetter||a;t.exports=function(t){return i(u,t)&&(c||"string"==typeof u[t])||(c&&i(f,t)?u[t]=f[t]:u[t]=l("Symbol."+t)),u[t]}},b64b:function(t,e,n){var r=n("23e7"),o=n("7b0b"),i=n("df75"),a=n("d039"),c=a((function(){i(1)}));r({target:"Object",stat:!0,forced:c},{keys:function(t){return i(o(t))}})},b680:function(t,e,n){"use strict";var r=n("23e7"),o=n("a691"),i=n("408a"),a=n("1148"),c=n("d039"),s=1..toFixed,u=Math.floor,f=function(t,e,n){return 0===e?n:e%2===1?f(t,e-1,n*t):f(t*t,e/2,n)},l=function(t){var e=0,n=t;while(n>=4096)e+=12,n/=4096;while(n>=2)e+=1,n/=2;return e},p=function(t,e,n){var r=-1,o=n;while(++r<6)o+=e*t[r],t[r]=o%1e7,o=u(o/1e7)},d=function(t,e){var n=6,r=0;while(--n>=0)r+=t[n],t[n]=u(r/e),r=r%e*1e7},h=function(t){var e=6,n="";while(--e>=0)if(""!==n||0===e||0!==t[e]){var r=String(t[e]);n=""===n?r:n+a.call("0",7-r.length)+r}return n},v=s&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){s.call({})}));r({target:"Number",proto:!0,forced:v},{toFixed:function(t){var e,n,r,c,s=i(this),u=o(t),v=[0,0,0,0,0,0],y="",m="0";if(u<0||u>20)throw RangeError("Incorrect fraction digits");if(s!=s)return"NaN";if(s<=-1e21||s>=1e21)return String(s);if(s<0&&(y="-",s=-s),s>1e-21)if(e=l(s*f(2,69,1))-69,n=e<0?s*f(2,-e,1):s/f(2,e,1),n*=4503599627370496,e=52-e,e>0){p(v,0,n),r=u;while(r>=7)p(v,1e7,0),r-=7;p(v,f(10,r,1),0),r=e-1;while(r>=23)d(v,1<<23),r-=23;d(v,1<0?(c=m.length,m=y+(c<=u?"0."+a.call("0",u-c)+m:m.slice(0,c-u)+"."+m.slice(c-u))):m=y+m,m}})},b727:function(t,e,n){var r=n("0366"),o=n("44ad"),i=n("7b0b"),a=n("50c4"),c=n("65f0"),s=[].push,u=function(t){var e=1==t,n=2==t,u=3==t,f=4==t,l=6==t,p=7==t,d=5==t||l;return function(h,v,y,m){for(var g,b,w=i(h),x=o(w),_=r(v,y,3),O=a(x.length),k=0,C=m||c,S=e?C(h,O):n||p?C(h,0):void 0;O>k;k++)if((d||k in x)&&(g=x[k],b=_(g,k,w),t))if(e)S[k]=b;else if(b)switch(t){case 3:return!0;case 5:return g;case 6:return k;case 2:s.call(S,g)}else switch(t){case 4:return!1;case 7:s.call(S,g)}return l?-1:u||f?f:S}};t.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterOut:u(7)}},bb2f:function(t,e,n){var r=n("d039");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},bd0c:function(t,e,n){},c04e:function(t,e,n){var r=n("861d");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},c430:function(t,e){t.exports=!1},c6b6:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},c6cd:function(t,e,n){var r=n("da84"),o=n("ce4e"),i="__core-js_shared__",a=r[i]||o(i,{});t.exports=a},c8ba:function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"===typeof window&&(n=window)}t.exports=n},c8d2:function(t,e,n){var r=n("d039"),o=n("5899"),i="​…᠎";t.exports=function(t){return r((function(){return!!o[t]()||i[t]()!=i||o[t].name!==t}))}},ca84:function(t,e,n){var r=n("5135"),o=n("fc6a"),i=n("4d64").indexOf,a=n("d012");t.exports=function(t,e){var n,c=o(t),s=0,u=[];for(n in c)!r(a,n)&&r(c,n)&&u.push(n);while(e.length>s)r(c,n=e[s++])&&(~i(u,n)||u.push(n));return u}},caad:function(t,e,n){"use strict";var r=n("23e7"),o=n("4d64").includes,i=n("44d2");r({target:"Array",proto:!0},{includes:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i("includes")},cb29:function(t,e,n){var r=n("23e7"),o=n("81d5"),i=n("44d2");r({target:"Array",proto:!0},{fill:o}),i("fill")},cc12:function(t,e,n){var r=n("da84"),o=n("861d"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},cca6:function(t,e,n){var r=n("23e7"),o=n("60da");r({target:"Object",stat:!0,forced:Object.assign!==o},{assign:o})},cdf9:function(t,e,n){var r=n("825a"),o=n("861d"),i=n("f069");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t),a=n.resolve;return a(e),n.promise}},ce4e:function(t,e,n){var r=n("da84"),o=n("9112");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},d012:function(t,e){t.exports={}},d039:function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},d066:function(t,e,n){var r=n("428f"),o=n("da84"),i=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},d1e7:function(t,e,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},d28b:function(t,e,n){var r=n("746f");r("iterator")},d2bb:function(t,e,n){var r=n("825a"),o=n("3bbe");t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,t.call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},d3b7:function(t,e,n){var r=n("00ee"),o=n("6eeb"),i=n("b041");r||o(Object.prototype,"toString",i,{unsafe:!0})},d44e:function(t,e,n){var r=n("9bf2").f,o=n("5135"),i=n("b622"),a=i("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,a)&&r(t,a,{configurable:!0,value:e})}},d784:function(t,e,n){"use strict";n("ac1f");var r=n("6eeb"),o=n("9263"),i=n("d039"),a=n("b622"),c=n("9112"),s=a("species"),u=RegExp.prototype;t.exports=function(t,e,n,f){var l=a(t),p=!i((function(){var e={};return e[l]=function(){return 7},7!=""[t](e)})),d=p&&!i((function(){var e=!1,n=/a/;return"split"===t&&(n={},n.constructor={},n.constructor[s]=function(){return n},n.flags="",n[l]=/./[l]),n.exec=function(){return e=!0,null},n[l](""),!e}));if(!p||!d||n){var h=/./[l],v=e(l,""[t],(function(t,e,n,r,i){var a=e.exec;return a===o||a===u.exec?p&&!i?{done:!0,value:h.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}));r(String.prototype,t,v[0]),r(u,l,v[1])}f&&c(u[l],"sham",!0)}},d81d:function(t,e,n){"use strict";var r=n("23e7"),o=n("b727").map,i=n("1dde"),a=i("map");r({target:"Array",proto:!0,forced:!a},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},d998:function(t,e,n){var r=n("342f");t.exports=/MSIE|Trident/.test(r)},d9bd:function(t,e,n){"use strict";n.d(e,"c",(function(){return i})),n.d(e,"b",(function(){return a})),n.d(e,"a",(function(){return c}));n("caad"),n("2532"),n("99af"),n("ac1f"),n("5319"),n("b0c0"),n("466d"),n("a15b"),n("d81d"),n("38cf");var r=n("f309");function o(t,e,n){if(!r["a"].config.silent){if(n&&(e={_isVue:!0,$parent:n,$options:e}),e){if(e.$_alreadyWarned=e.$_alreadyWarned||[],e.$_alreadyWarned.includes(t))return;e.$_alreadyWarned.push(t)}return"[Vuetify] ".concat(t)+(e?l(e):"")}}function i(t,e,n){var r=o(t,e,n);null!=r&&console.warn(r)}function a(t,e,n){var r=o(t,e,n);null!=r&&console.error(r)}function c(t,e,n,r){a("[BREAKING] '".concat(t,"' has been removed, use '").concat(e,"' instead. For more information, see the upgrade guide https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide"),n,r)}var s=/(?:^|[-_])(\w)/g,u=function(t){return t.replace(s,(function(t){return t.toUpperCase()})).replace(/[-_]/g,"")};function f(t,e){if(t.$root===t)return"";var n="function"===typeof t&&null!=t.cid?t.options:t._isVue?t.$options||t.constructor.options:t||{},r=n.name||n._componentTag,o=n.__file;if(!r&&o){var i=o.match(/([^/\\]+)\.vue$/);r=i&&i[1]}return(r?"<".concat(u(r),">"):"")+(o&&!1!==e?" at ".concat(o):"")}function l(t){if(t._isVue&&t.$parent){var e=[],n=0;while(t){if(e.length>0){var r=e[e.length-1];if(r.constructor===t.constructor){n++,t=t.$parent;continue}n>0&&(e[e.length-1]=[r,n],n=0)}e.push(t),t=t.$parent}return"\n\nfound in\n\n"+e.map((function(t,e){return"".concat(0===e?"---\x3e ":" ".repeat(5+2*e)).concat(Array.isArray(t)?"".concat(f(t[0]),"... (").concat(t[1]," recursive calls)"):f(t))})).join("\n")}return"\n\n(found in ".concat(f(t),")")}},da84:function(t,e,n){(function(e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||function(){return this}()||Function("return this")()}).call(this,n("c8ba"))},dbb4:function(t,e,n){var r=n("23e7"),o=n("83ab"),i=n("56ef"),a=n("fc6a"),c=n("06cf"),s=n("8418");r({target:"Object",stat:!0,sham:!o},{getOwnPropertyDescriptors:function(t){var e,n,r=a(t),o=c.f,u=i(r),f={},l=0;while(u.length>l)n=o(r,e=u[l++]),void 0!==n&&s(f,e,n);return f}})},dca8:function(t,e,n){var r=n("23e7"),o=n("bb2f"),i=n("d039"),a=n("861d"),c=n("f183").onFreeze,s=Object.freeze,u=i((function(){s(1)}));r({target:"Object",stat:!0,forced:u,sham:!o},{freeze:function(t){return s&&a(t)?s(c(t)):t}})},ddb0:function(t,e,n){var r=n("da84"),o=n("fdbc"),i=n("e260"),a=n("9112"),c=n("b622"),s=c("iterator"),u=c("toStringTag"),f=i.values;for(var l in o){var p=r[l],d=p&&p.prototype;if(d){if(d[s]!==f)try{a(d,s,f)}catch(v){d[s]=f}if(d[u]||a(d,u,l),o[l])for(var h in i)if(d[h]!==i[h])try{a(d,h,i[h])}catch(v){d[h]=i[h]}}}},df75:function(t,e,n){var r=n("ca84"),o=n("7839");t.exports=Object.keys||function(t){return r(t,o)}},df86:function(t,e,n){},e01a:function(t,e,n){"use strict";var r=n("23e7"),o=n("83ab"),i=n("da84"),a=n("5135"),c=n("861d"),s=n("9bf2").f,u=n("e893"),f=i.Symbol;if(o&&"function"==typeof f&&(!("description"in f.prototype)||void 0!==f().description)){var l={},p=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),e=this instanceof p?new f(t):void 0===t?f():f(t);return""===t&&(l[e]=!0),e};u(p,f);var d=p.prototype=f.prototype;d.constructor=p;var h=d.toString,v="Symbol(test)"==String(f("test")),y=/^Symbol\((.*)\)[^)]+$/;s(d,"description",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=h.call(t);if(a(l,t))return"";var n=v?e.slice(7,-1):e.replace(y,"$1");return""===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},e163:function(t,e,n){var r=n("5135"),o=n("7b0b"),i=n("f772"),a=n("e177"),c=i("IE_PROTO"),s=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},e177:function(t,e,n){var r=n("d039");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},e260:function(t,e,n){"use strict";var r=n("fc6a"),o=n("44d2"),i=n("3f8c"),a=n("69f3"),c=n("7dd0"),s="Array Iterator",u=a.set,f=a.getterFor(s);t.exports=c(Array,"Array",(function(t,e){u(this,{type:s,target:r(t),index:0,kind:e})}),(function(){var t=f(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),"values"),i.Arguments=i.Array,o("keys"),o("values"),o("entries")},e2cc:function(t,e,n){var r=n("6eeb");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},e439:function(t,e,n){var r=n("23e7"),o=n("d039"),i=n("fc6a"),a=n("06cf").f,c=n("83ab"),s=o((function(){a(1)})),u=!c||s;r({target:"Object",stat:!0,forced:u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},e538:function(t,e,n){var r=n("b622");e.f=r},e667:function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},e6cf:function(t,e,n){"use strict";var r,o,i,a,c=n("23e7"),s=n("c430"),u=n("da84"),f=n("d066"),l=n("fea9"),p=n("6eeb"),d=n("e2cc"),h=n("d2bb"),v=n("d44e"),y=n("2626"),m=n("861d"),g=n("1c0b"),b=n("19aa"),w=n("8925"),x=n("2266"),_=n("1c7e"),O=n("4840"),k=n("2cf4").set,C=n("b575"),S=n("cdf9"),A=n("44de"),L=n("f069"),j=n("e667"),E=n("69f3"),$=n("94ca"),T=n("b622"),M=n("6069"),P=n("605d"),I=n("2d00"),R=T("species"),N="Promise",D=E.get,F=E.set,V=E.getterFor(N),H=l&&l.prototype,B=l,U=H,z=u.TypeError,q=u.document,W=u.process,Z=L.f,G=Z,K=!!(q&&q.createEvent&&u.dispatchEvent),Q="function"==typeof PromiseRejectionEvent,Y="unhandledrejection",X="rejectionhandled",J=0,tt=1,et=2,nt=1,rt=2,ot=!1,it=$(N,(function(){var t=w(B),e=t!==String(B);if(!e&&66===I)return!0;if(s&&!U["finally"])return!0;if(I>=51&&/native code/.test(t))return!1;var n=new B((function(t){t(1)})),r=function(t){t((function(){}),(function(){}))},o=n.constructor={};return o[R]=r,ot=n.then((function(){}))instanceof r,!ot||!e&&M&&!Q})),at=it||!_((function(t){B.all(t)["catch"]((function(){}))})),ct=function(t){var e;return!(!m(t)||"function"!=typeof(e=t.then))&&e},st=function(t,e){if(!t.notified){t.notified=!0;var n=t.reactions;C((function(){var r=t.value,o=t.state==tt,i=0;while(n.length>i){var a,c,s,u=n[i++],f=o?u.ok:u.fail,l=u.resolve,p=u.reject,d=u.domain;try{f?(o||(t.rejection===rt&&pt(t),t.rejection=nt),!0===f?a=r:(d&&d.enter(),a=f(r),d&&(d.exit(),s=!0)),a===u.promise?p(z("Promise-chain cycle")):(c=ct(a))?c.call(a,l,p):l(a)):p(r)}catch(h){d&&!s&&d.exit(),p(h)}}t.reactions=[],t.notified=!1,e&&!t.rejection&&ft(t)}))}},ut=function(t,e,n){var r,o;K?(r=q.createEvent("Event"),r.promise=e,r.reason=n,r.initEvent(t,!1,!0),u.dispatchEvent(r)):r={promise:e,reason:n},!Q&&(o=u["on"+t])?o(r):t===Y&&A("Unhandled promise rejection",n)},ft=function(t){k.call(u,(function(){var e,n=t.facade,r=t.value,o=lt(t);if(o&&(e=j((function(){P?W.emit("unhandledRejection",r,n):ut(Y,n,r)})),t.rejection=P||lt(t)?rt:nt,e.error))throw e.value}))},lt=function(t){return t.rejection!==nt&&!t.parent},pt=function(t){k.call(u,(function(){var e=t.facade;P?W.emit("rejectionHandled",e):ut(X,e,t.value)}))},dt=function(t,e,n){return function(r){t(e,r,n)}},ht=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=et,st(t,!0))},vt=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw z("Promise can't be resolved itself");var r=ct(e);r?C((function(){var n={done:!1};try{r.call(e,dt(vt,n,t),dt(ht,n,t))}catch(o){ht(n,o,t)}})):(t.value=e,t.state=tt,st(t,!1))}catch(o){ht({done:!1},o,t)}}};if(it&&(B=function(t){b(this,B,N),g(t),r.call(this);var e=D(this);try{t(dt(vt,e),dt(ht,e))}catch(n){ht(e,n)}},U=B.prototype,r=function(t){F(this,{type:N,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:J,value:void 0})},r.prototype=d(U,{then:function(t,e){var n=V(this),r=Z(O(this,B));return r.ok="function"!=typeof t||t,r.fail="function"==typeof e&&e,r.domain=P?W.domain:void 0,n.parent=!0,n.reactions.push(r),n.state!=J&&st(n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=D(t);this.promise=t,this.resolve=dt(vt,e),this.reject=dt(ht,e)},L.f=Z=function(t){return t===B||t===i?new o(t):G(t)},!s&&"function"==typeof l&&H!==Object.prototype)){a=H.then,ot||(p(H,"then",(function(t,e){var n=this;return new B((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),p(H,"catch",U["catch"],{unsafe:!0}));try{delete H.constructor}catch(yt){}h&&h(H,U)}c({global:!0,wrap:!0,forced:it},{Promise:B}),v(B,N,!1,!0),y(N),i=f(N),c({target:N,stat:!0,forced:it},{reject:function(t){var e=Z(this);return e.reject.call(void 0,t),e.promise}}),c({target:N,stat:!0,forced:s||it},{resolve:function(t){return S(s&&this===i?B:this,t)}}),c({target:N,stat:!0,forced:at},{all:function(t){var e=this,n=Z(e),r=n.resolve,o=n.reject,i=j((function(){var n=g(e.resolve),i=[],a=0,c=1;x(t,(function(t){var s=a++,u=!1;i.push(void 0),c++,n.call(e,t).then((function(t){u||(u=!0,i[s]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=Z(e),r=n.reject,o=j((function(){var o=g(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},e893:function(t,e,n){var r=n("5135"),o=n("56ef"),i=n("06cf"),a=n("9bf2");t.exports=function(t,e){for(var n=o(e),c=a.f,s=i.f,u=0;u1&&void 0!==arguments[1]?arguments[1]:{};if(!u.installed){u.installed=!0,c["a"]!==t&&Object(s["b"])("Multiple instances of Vue detected\nSee https://github.com/vuetifyjs/vuetify/issues/4068\n\nIf you're seeing \"$attrs is readonly\", it's caused by this");var n=e.components||{},r=e.directives||{};for(var o in r){var i=r[o];t.directive(o,i)}(function e(n){if(n){for(var r in n){var o=n[r];o&&!e(o.$_vuetify_subcomponents)&&t.component(r,o)}return!0}return!1})(n),t.$_vuetify_installed||(t.$_vuetify_installed=!0,t.mixin({beforeCreate:function(){var e=this.$options;e.vuetify?(e.vuetify.init(this,this.$ssrContext),this.$vuetify=t.observable(e.vuetify.framework)):this.$vuetify=e.parent&&e.parent.$vuetify||this},beforeMount:function(){this.$options.vuetify&&this.$el&&this.$el.hasAttribute("data-server-rendered")&&(this.$vuetify.isHydrating=!0,this.$vuetify.breakpoint.update(!0))},mounted:function(){this.$options.vuetify&&this.$vuetify.isHydrating&&(this.$vuetify.isHydrating=!1,this.$vuetify.breakpoint.update())}}))}}n("a4d3"),n("b64b");function f(t,e){if(null==t)return{};var n,r,o={},i=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}function l(t,e){if(null==t)return{};var n,r,o=f(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function p(t,e){return p=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},p(t,e)}function d(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&p(t,e)}n("4ae1"),n("3410");function h(t){return h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},h(t)}function v(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}var y=n("7037"),m=n.n(y);function g(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function b(t,e){return!e||"object"!==m()(e)&&"function"!==typeof e?g(t):e}function w(t){var e=v();return function(){var n,r=h(t);if(e){var o=h(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return b(this,n)}}n("95ed");var x={badge:"Badge",close:"Close",dataIterator:{noResultsText:"No matching records found",loadingText:"Loading items..."},dataTable:{itemsPerPageText:"Rows per page:",ariaLabel:{sortDescending:"Sorted descending.",sortAscending:"Sorted ascending.",sortNone:"Not sorted.",activateNone:"Activate to remove sorting.",activateDescending:"Activate to sort descending.",activateAscending:"Activate to sort ascending."},sortBy:"Sort by"},dataFooter:{itemsPerPageText:"Items per page:",itemsPerPageAll:"All",nextPage:"Next page",prevPage:"Previous page",firstPage:"First page",lastPage:"Last page",pageText:"{0}-{1} of {2}"},datePicker:{itemsSelected:"{0} selected",nextMonthAriaLabel:"Next month",nextYearAriaLabel:"Next year",prevMonthAriaLabel:"Previous month",prevYearAriaLabel:"Previous year"},noDataText:"No data available",carousel:{prev:"Previous visual",next:"Next visual",ariaLabel:{delimiter:"Carousel slide {0} of {1}"}},calendar:{moreEvents:"{0} more"},fileInput:{counter:"{0} files",counterSize:"{0} files ({1} in total)"},timePicker:{am:"AM",pm:"PM"},pagination:{ariaLabel:{wrapper:"Pagination Navigation",next:"Next page",previous:"Previous page",page:"Goto Page {0}",currentPage:"Current Page, Page {0}"}},rating:{ariaLabel:{icon:"Rating {0} of {1}"}}},_={breakpoint:{mobileBreakpoint:1264,scrollBarWidth:16,thresholds:{xs:600,sm:960,md:1280,lg:1920}},icons:{iconfont:"mdi",values:{}},lang:{current:"en",locales:{en:x},t:void 0},rtl:!1,theme:{dark:!1,default:"light",disable:!1,options:{cspNonce:void 0,customProperties:void 0,minifyTheme:void 0,themeCache:void 0,variations:!0},themes:{light:{primary:"#1976D2",secondary:"#424242",accent:"#82B1FF",error:"#FF5252",info:"#2196F3",success:"#4CAF50",warning:"#FB8C00"},dark:{primary:"#2196F3",secondary:"#424242",accent:"#FF4081",error:"#FF5252",info:"#2196F3",success:"#4CAF50",warning:"#FB8C00"}}}},O=n("80d2"),k=function(){function t(){o(this,t),this.framework={}}return a(t,[{key:"init",value:function(t,e){}}]),t}(),C=["preset"],S=function(t){d(n,t);var e=w(n);function n(t,r){var i;o(this,n),i=e.call(this);var a=Object(O["l"])({},_),c=r.userPreset,u=c.preset,f=void 0===u?{}:u,p=l(c,C);return null!=f.preset&&Object(s["c"])("Global presets do not support the **preset** option, it can be safely omitted"),r.preset=Object(O["l"])(Object(O["l"])(a,f),p),i}return n}(k);S.property="presets";var A=n("ade3"),L=(n("07ac"),function(t){d(n,t);var e=w(n);function n(){var t;return o(this,n),t=e.apply(this,arguments),t.bar=0,t.top=0,t.left=0,t.insetFooter=0,t.right=0,t.bottom=0,t.footer=0,t.application={bar:{},top:{},left:{},insetFooter:{},right:{},bottom:{},footer:{}},t}return a(n,[{key:"register",value:function(t,e,n){this.application[e]=Object(A["a"])({},t,n),this.update(e)}},{key:"unregister",value:function(t,e){null!=this.application[e][t]&&(delete this.application[e][t],this.update(e))}},{key:"update",value:function(t){this[t]=Object.values(this.application[t]).reduce((function(t,e){return t+e}),0)}}]),n}(k));L.property="application";n("b0c0");var j=function(t){d(n,t);var e=w(n);function n(t){var r;o(this,n),r=e.call(this),r.xs=!1,r.sm=!1,r.md=!1,r.lg=!1,r.xl=!1,r.xsOnly=!1,r.smOnly=!1,r.smAndDown=!1,r.smAndUp=!1,r.mdOnly=!1,r.mdAndDown=!1,r.mdAndUp=!1,r.lgOnly=!1,r.lgAndDown=!1,r.lgAndUp=!1,r.xlOnly=!1,r.name="xs",r.height=0,r.width=0,r.mobile=!0,r.resizeTimeout=0;var i=t[n.property],a=i.mobileBreakpoint,c=i.scrollBarWidth,s=i.thresholds;return r.mobileBreakpoint=a,r.scrollBarWidth=c,r.thresholds=s,r}return a(n,[{key:"init",value:function(){this.update(),"undefined"!==typeof window&&window.addEventListener("resize",this.onResize.bind(this),{passive:!0})}},{key:"update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=t?0:this.getClientHeight(),n=t?0:this.getClientWidth(),r=n=this.thresholds.lg-this.scrollBarWidth;switch(this.height=e,this.width=n,this.xs=r,this.sm=o,this.md=i,this.lg=a,this.xl=c,this.xsOnly=r,this.smOnly=o,this.smAndDown=(r||o)&&!(i||a||c),this.smAndUp=!r&&(o||i||a||c),this.mdOnly=i,this.mdAndDown=(r||o||i)&&!(a||c),this.mdAndUp=!(r||o)&&(i||a||c),this.lgOnly=a,this.lgAndDown=(r||o||i||a)&&!c,this.lgAndUp=!(r||o||i)&&(a||c),this.xlOnly=c,!0){case r:this.name="xs";break;case o:this.name="sm";break;case i:this.name="md";break;case a:this.name="lg";break;default:this.name="xl";break}if("number"!==typeof this.mobileBreakpoint){var s={xs:0,sm:1,md:2,lg:3,xl:4},u=s[this.name],f=s[this.mobileBreakpoint];this.mobile=u<=f}else this.mobile=n1&&void 0!==arguments[1]?arguments[1]:{},n=Object(E["a"])({container:document.scrollingElement||document.body||document.documentElement,duration:500,offset:0,easing:"easeInOutCubic",appOffset:!0},e),o=q(n.container);if(n.appOffset&&G.framework.application){var i=o.classList.contains("v-navigation-drawer"),a=o.classList.contains("v-navigation-drawer--clipped"),c=G.framework.application,s=c.bar,u=c.top;n.offset+=s,i&&!a||(n.offset+=u)}var f,l=performance.now();f="number"===typeof t?z(t)-n.offset:z(t)-z(o)-n.offset;var p=o.scrollTop;if(f===p)return Promise.resolve(f);var d="function"===typeof n.easing?n.easing:r[n.easing];if(!d)throw new TypeError('Easing function "'.concat(n.easing,'" not found.'));return new Promise((function(t){return requestAnimationFrame((function e(r){var i=r-l,a=Math.abs(n.duration?Math.min(i/n.duration,1):1);o.scrollTop=Math.floor(p+(f-p)*d(a));var c=o===document.body?document.documentElement.clientHeight:o.clientHeight;if(1===a||c+o.scrollTop===o.scrollHeight)return t(f);requestAnimationFrame(e)}))}))}G.framework={},G.init=function(){};var K=function(t){d(n,t);var e=w(n);function n(){var t;return o(this,n),t=e.call(this),b(t,G)}return n}(k);K.property="goTo";n("ddb0"),n("dca8");var Q={complete:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z",cancel:"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z",close:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",delete:"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z",clear:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",success:"M12,2C17.52,2 22,6.48 22,12C22,17.52 17.52,22 12,22C6.48,22 2,17.52 2,12C2,6.48 6.48,2 12,2M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z",info:"M13,9H11V7H13M13,17H11V11H13M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z",warning:"M11,4.5H13V15.5H11V4.5M13,17.5V19.5H11V17.5H13Z",error:"M13,14H11V10H13M13,18H11V16H13M1,21H23L12,2L1,21Z",prev:"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z",next:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",checkboxOn:"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z",checkboxOff:"M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z",checkboxIndeterminate:"M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z",delimiter:"M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z",sort:"M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z",expand:"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z",menu:"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z",subgroup:"M7,10L12,15L17,10H7Z",dropdown:"M7,10L12,15L17,10H7Z",radioOn:"M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2M12,7C9.24,7 7,9.24 7,12C7,14.76 9.24,17 12,17C14.76,17 17,14.76 17,12C17,9.24 14.76,7 12,7Z",radioOff:"M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z",edit:"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z",ratingEmpty:"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z",ratingFull:"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z",ratingHalf:"M12,15.4V6.1L13.71,10.13L18.09,10.5L14.77,13.39L15.76,17.67M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z",loading:"M19,8L15,12H18C18,15.31 15.31,18 12,18C11,18 10.03,17.75 9.2,17.3L7.74,18.76C8.97,19.54 10.43,20 12,20C16.42,20 20,16.42 20,12H23M6,12C6,8.69 8.69,6 12,6C13,6 13.97,6.25 14.8,6.7L16.26,5.24C15.03,4.46 13.57,4 12,4C7.58,4 4,7.58 4,12H1L5,16L9,12",first:"M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z",last:"M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z",unfold:"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z",file:"M16.5,6V17.5C16.5,19.71 14.71,21.5 12.5,21.5C10.29,21.5 8.5,19.71 8.5,17.5V5C8.5,3.62 9.62,2.5 11,2.5C12.38,2.5 13.5,3.62 13.5,5V15.5C13.5,16.05 13.05,16.5 12.5,16.5C11.95,16.5 11.5,16.05 11.5,15.5V6H10V15.5C10,16.88 11.12,18 12.5,18C13.88,18 15,16.88 15,15.5V5C15,2.79 13.21,1 11,1C8.79,1 7,2.79 7,5V17.5C7,20.54 9.46,23 12.5,23C15.54,23 18,20.54 18,17.5V6H16.5Z",plus:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",minus:"M19,13H5V11H19V13Z"},Y=Q,X={complete:"check",cancel:"cancel",close:"close",delete:"cancel",clear:"clear",success:"check_circle",info:"info",warning:"priority_high",error:"warning",prev:"chevron_left",next:"chevron_right",checkboxOn:"check_box",checkboxOff:"check_box_outline_blank",checkboxIndeterminate:"indeterminate_check_box",delimiter:"fiber_manual_record",sort:"arrow_upward",expand:"keyboard_arrow_down",menu:"menu",subgroup:"arrow_drop_down",dropdown:"arrow_drop_down",radioOn:"radio_button_checked",radioOff:"radio_button_unchecked",edit:"edit",ratingEmpty:"star_border",ratingFull:"star",ratingHalf:"star_half",loading:"cached",first:"first_page",last:"last_page",unfold:"unfold_more",file:"attach_file",plus:"add",minus:"remove"},J=X,tt={complete:"mdi-check",cancel:"mdi-close-circle",close:"mdi-close",delete:"mdi-close-circle",clear:"mdi-close",success:"mdi-check-circle",info:"mdi-information",warning:"mdi-exclamation",error:"mdi-alert",prev:"mdi-chevron-left",next:"mdi-chevron-right",checkboxOn:"mdi-checkbox-marked",checkboxOff:"mdi-checkbox-blank-outline",checkboxIndeterminate:"mdi-minus-box",delimiter:"mdi-circle",sort:"mdi-arrow-up",expand:"mdi-chevron-down",menu:"mdi-menu",subgroup:"mdi-menu-down",dropdown:"mdi-menu-down",radioOn:"mdi-radiobox-marked",radioOff:"mdi-radiobox-blank",edit:"mdi-pencil",ratingEmpty:"mdi-star-outline",ratingFull:"mdi-star",ratingHalf:"mdi-star-half-full",loading:"mdi-cached",first:"mdi-page-first",last:"mdi-page-last",unfold:"mdi-unfold-more-horizontal",file:"mdi-paperclip",plus:"mdi-plus",minus:"mdi-minus"},et=tt,nt={complete:"fas fa-check",cancel:"fas fa-times-circle",close:"fas fa-times",delete:"fas fa-times-circle",clear:"fas fa-times-circle",success:"fas fa-check-circle",info:"fas fa-info-circle",warning:"fas fa-exclamation",error:"fas fa-exclamation-triangle",prev:"fas fa-chevron-left",next:"fas fa-chevron-right",checkboxOn:"fas fa-check-square",checkboxOff:"far fa-square",checkboxIndeterminate:"fas fa-minus-square",delimiter:"fas fa-circle",sort:"fas fa-sort-up",expand:"fas fa-chevron-down",menu:"fas fa-bars",subgroup:"fas fa-caret-down",dropdown:"fas fa-caret-down",radioOn:"far fa-dot-circle",radioOff:"far fa-circle",edit:"fas fa-edit",ratingEmpty:"far fa-star",ratingFull:"fas fa-star",ratingHalf:"fas fa-star-half",loading:"fas fa-sync",first:"fas fa-step-backward",last:"fas fa-step-forward",unfold:"fas fa-arrows-alt-v",file:"fas fa-paperclip",plus:"fas fa-plus",minus:"fas fa-minus"},rt=nt,ot={complete:"fa fa-check",cancel:"fa fa-times-circle",close:"fa fa-times",delete:"fa fa-times-circle",clear:"fa fa-times-circle",success:"fa fa-check-circle",info:"fa fa-info-circle",warning:"fa fa-exclamation",error:"fa fa-exclamation-triangle",prev:"fa fa-chevron-left",next:"fa fa-chevron-right",checkboxOn:"fa fa-check-square",checkboxOff:"fa fa-square-o",checkboxIndeterminate:"fa fa-minus-square",delimiter:"fa fa-circle",sort:"fa fa-sort-up",expand:"fa fa-chevron-down",menu:"fa fa-bars",subgroup:"fa fa-caret-down",dropdown:"fa fa-caret-down",radioOn:"fa fa-dot-circle-o",radioOff:"fa fa-circle-o",edit:"fa fa-pencil",ratingEmpty:"fa fa-star-o",ratingFull:"fa fa-star",ratingHalf:"fa fa-star-half-o",loading:"fa fa-refresh",first:"fa fa-step-backward",last:"fa fa-step-forward",unfold:"fa fa-angle-double-down",file:"fa fa-paperclip",plus:"fa fa-plus",minus:"fa fa-minus"},it=ot;n("ac1f"),n("1276");function at(t,e){var n={};for(var r in e)n[r]={component:t,props:{icon:e[r].split(" fa-")}};return n}var ct=at("font-awesome-icon",rt),st=Object.freeze({mdiSvg:Y,md:J,mdi:et,fa:rt,fa4:it,faSvg:ct}),ut=function(t){d(n,t);var e=w(n);function n(t){var r;o(this,n),r=e.call(this);var i=t[n.property],a=i.iconfont,c=i.values,s=i.component;return r.component=s,r.iconfont=a,r.values=Object(O["l"])(st[a],c),r}return n}(k);ut.property="icons";n("e01a"),n("5319"),n("2ca0"),n("99af");var ft="$vuetify.",lt=Symbol("Lang fallback");function pt(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0,o=e.replace(ft,""),i=Object(O["h"])(t,o,lt);return i===lt&&(n?(Object(s["b"])('Translation key "'.concat(o,'" not found in fallback')),i=e):(Object(s["c"])('Translation key "'.concat(o,'" not found, falling back to default')),i=pt(r,e,!0,r))),i}var dt=function(t){d(n,t);var e=w(n);function n(t){var r;o(this,n),r=e.call(this),r.defaultLocale="en";var i=t[n.property],a=i.current,c=i.locales,s=i.t;return r.current=a,r.locales=c,r.translator=s||r.defaultTranslator,r}return a(n,[{key:"currentLocale",value:function(t){var e=this.locales[this.current],n=this.locales[this.defaultLocale];return pt(e,t,!1,n)}},{key:"t",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1?e-1:0),r=1;rMath.pow(gt,3)?Math.cbrt(t):t/(3*Math.pow(gt,2))+4/29},wt=function(t){return t>gt?Math.pow(t,3):3*Math.pow(gt,2)*(t-4/29)};function xt(t){var e=bt,n=e(t[1]);return[116*n-16,500*(e(t[0]/.95047)-n),200*(n-e(t[2]/1.08883))]}function _t(t){var e=wt,n=(t[0]+16)/116;return[.95047*e(n+t[1]/500),e(n),1.08883*e(n-t[2]/200)]}var Ot=["anchor"],kt=["anchor"];function Ct(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=t.anchor,o=l(t,Ot),i=Object.keys(o),a={},c=0;c1&&void 0!==arguments[1]?arguments[1]:"base";return"--v-".concat(t,"-").concat(e)},jt=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"base";return"var(".concat(Lt(t,e),")")};function Et(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.anchor,r=l(t,kt),o=Object.keys(r);if(!o.length)return"";var i="",a="",c=e?jt("anchor"):n;a+=".v-application a { color: ".concat(c,"; }"),e&&(i+=" ".concat(Lt("anchor"),": ").concat(n,";\n"));for(var s=0;s0;--r)n["lighten".concat(r)]=Object(yt["c"])(Tt(e,r));for(var o=1;o<=4;++o)n["darken".concat(o)]=Object(yt["c"])(Mt(e,o));return n}function Tt(t,e){var n=xt(mt["b"](t));return n[0]=n[0]+10*e,mt["a"](_t(n))}function Mt(t,e){var n=xt(mt["b"](t));return n[0]=n[0]-10*e,mt["a"](_t(n))}var Pt=function(t){d(n,t);var e=w(n);function n(t){var r;o(this,n),r=e.call(this),r.disabled=!1,r.isDark=null,r.unwatch=null,r.vueMeta=null;var i=t[n.property],a=i.dark,c=i.disable,s=i.options,u=i.themes;return r.dark=Boolean(a),r.defaults=r.themes=u,r.options=s,c?(r.disabled=!0,b(r)):(r.themes={dark:r.fillVariant(u.dark,!0),light:r.fillVariant(u.light,!1)},r)}return a(n,[{key:"css",set:function(t){this.vueMeta?this.isVueMeta23&&this.applyVueMeta23():this.checkOrCreateStyleElement()&&(this.styleEl.innerHTML=t)}},{key:"dark",get:function(){return Boolean(this.isDark)},set:function(t){var e=this.isDark;this.isDark=t,null!=e&&this.applyTheme()}},{key:"applyTheme",value:function(){if(this.disabled)return this.clearCss();this.css=this.generatedStyles}},{key:"clearCss",value:function(){this.css=""}},{key:"init",value:function(t,e){this.disabled||(t.$meta?this.initVueMeta(t):e&&this.initSSR(e),this.initTheme(t))}},{key:"setTheme",value:function(t,e){this.themes[t]=Object.assign(this.themes[t],e),this.applyTheme()}},{key:"resetThemes",value:function(){this.themes.light=Object.assign({},this.defaults.light),this.themes.dark=Object.assign({},this.defaults.dark),this.applyTheme()}},{key:"checkOrCreateStyleElement",value:function(){return this.styleEl=document.getElementById("vuetify-theme-stylesheet"),!!this.styleEl||(this.genStyleElement(),Boolean(this.styleEl))}},{key:"fillVariant",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=this.themes[e?"dark":"light"];return Object.assign({},n,t)}},{key:"genStyleElement",value:function(){"undefined"!==typeof document&&(this.styleEl=document.createElement("style"),this.styleEl.type="text/css",this.styleEl.id="vuetify-theme-stylesheet",this.options.cspNonce&&this.styleEl.setAttribute("nonce",this.options.cspNonce),document.head.appendChild(this.styleEl))}},{key:"initVueMeta",value:function(t){var e=this;if(this.vueMeta=t.$meta(),this.isVueMeta23)t.$nextTick((function(){e.applyVueMeta23()}));else{var n="function"===typeof this.vueMeta.getOptions?this.vueMeta.getOptions().keyName:"metaInfo",r=t.$options[n]||{};t.$options[n]=function(){r.style=r.style||[];var t=r.style.find((function(t){return"vuetify-theme-stylesheet"===t.id}));return t?t.cssText=e.generatedStyles:r.style.push({cssText:e.generatedStyles,type:"text/css",id:"vuetify-theme-stylesheet",nonce:(e.options||{}).cspNonce}),r}}}},{key:"applyVueMeta23",value:function(){var t=this.vueMeta.addApp("vuetify"),e=t.set;e({style:[{cssText:this.generatedStyles,type:"text/css",id:"vuetify-theme-stylesheet",nonce:this.options.cspNonce}]})}},{key:"initSSR",value:function(t){var e=this.options.cspNonce?' nonce="'.concat(this.options.cspNonce,'"'):"";t.head=t.head||"",t.head+='")}},{key:"initTheme",value:function(t){var e=this;"undefined"!==typeof document&&(this.unwatch&&(this.unwatch(),this.unwatch=null),t.$once("hook:created",(function(){var n=c["a"].observable({themes:e.themes});e.unwatch=t.$watch((function(){return n.themes}),(function(){return e.applyTheme()}),{deep:!0})})),this.applyTheme())}},{key:"currentTheme",get:function(){var t=this.dark?"dark":"light";return this.themes[t]}},{key:"generatedStyles",get:function(){var t,e=this.parsedTheme,n=this.options||{};return null!=n.themeCache&&(t=n.themeCache.get(e),null!=t)||(t=Et(e,n.customProperties),null!=n.minifyTheme&&(t=n.minifyTheme(t)),null!=n.themeCache&&n.themeCache.set(e,t)),t}},{key:"parsedTheme",get:function(){return Ct(this.currentTheme||{},void 0,Object(O["g"])(this.options,["variations"],!0))}},{key:"isVueMeta23",get:function(){return"function"===typeof this.vueMeta.addApp}}]),n}(k);Pt.property="theme";var It=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};o(this,t),this.framework={isHydrating:!1},this.installed=[],this.preset={},this.userPreset={},this.userPreset=e,this.use(S),this.use(L),this.use(j),this.use(K),this.use(ut),this.use(dt),this.use(Pt)}return a(t,[{key:"init",value:function(t,e){var n=this;this.installed.forEach((function(r){var o=n.framework[r];o.framework=n.framework,o.init(t,e)})),this.framework.rtl=Boolean(this.preset.rtl)}},{key:"use",value:function(t){var e=t.property;this.installed.includes(e)||(this.framework[e]=new t(this.preset,this),this.installed.push(e))}}]),t}();It.install=u,It.installed=!1,It.version="2.5.7",It.config={silent:!1}},f5df:function(t,e,n){var r=n("00ee"),o=n("c6b6"),i=n("b622"),a=i("toStringTag"),c="Arguments"==o(function(){return arguments}()),s=function(t,e){try{return t[e]}catch(n){}};t.exports=r?o:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=s(e=Object(t),a))?n:c?o(e):"Object"==(r=o(e))&&"function"==typeof e.callee?"Arguments":r}},f6c4:function(t,e,n){"use strict";n("bd0c");var r=n("2b0e"),o=r["a"].extend({name:"ssr-bootable",data:function(){return{isBooted:!1}},mounted:function(){var t=this;window.requestAnimationFrame((function(){t.$el.setAttribute("data-booted","true"),t.isBooted=!0}))}});e["a"]=o.extend({name:"v-main",props:{tag:{type:String,default:"main"}},computed:{styles:function(){var t=this.$vuetify.application,e=t.bar,n=t.top,r=t.right,o=t.footer,i=t.insetFooter,a=t.bottom,c=t.left;return{paddingTop:"".concat(n+e,"px"),paddingRight:"".concat(r,"px"),paddingBottom:"".concat(o+i+a,"px"),paddingLeft:"".concat(c,"px")}}},render:function(t){var e={staticClass:"v-main",style:this.styles,ref:"main"};return t(this.tag,e,[t("div",{staticClass:"v-main__wrap"},this.$slots.default)])}})},f748:function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},f772:function(t,e,n){var r=n("5692"),o=n("90e3"),i=r("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},fb6a:function(t,e,n){"use strict";var r=n("23e7"),o=n("861d"),i=n("e8b5"),a=n("23cb"),c=n("50c4"),s=n("fc6a"),u=n("8418"),f=n("b622"),l=n("1dde"),p=l("slice"),d=f("species"),h=[].slice,v=Math.max;r({target:"Array",proto:!0,forced:!p},{slice:function(t,e){var n,r,f,l=s(this),p=c(l.length),y=a(t,p),m=a(void 0===e?p:e,p);if(i(l)&&(n=l.constructor,"function"!=typeof n||n!==Array&&!i(n.prototype)?o(n)&&(n=n[d],null===n&&(n=void 0)):n=void 0,n===Array||void 0===n))return h.call(l,y,m);for(r=new(void 0===n?Array:n)(v(m-y,0)),f=0;y arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('./fails');\n\nmodule.exports = fails(function () {\n // babel-minify transpiles RegExp('.', 'g') -> /./g and it causes SyntaxError\n var re = RegExp('(?b)', (typeof '').charAt(5));\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var res = maybeCallNative(internalSplit, this, string, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(this);\n var S = String(string);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? S.slice(q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.es/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n anchor: function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n }\n});\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","/*!\n * Vue.js v2.6.14\n * (c) 2014-2021 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (target) {\n targetStack.push(target);\n Dep.target = target;\n}\n\nfunction popTarget () {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n protoAugment(value, arrayMethods);\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i], vm);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n var haveExpectedTypes = expectedTypes.some(function (t) { return t; });\n if (!valid && haveExpectedTypes) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol|BigInt)$/;\n\nfunction assertType (value, type, vm) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n try {\n valid = value instanceof type;\n } catch (e) {\n warn('Invalid prop type: \"' + String(type) + '\" is not a constructor', vm);\n valid = false;\n }\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\nvar functionTypeCheckRE = /^\\s*function (\\w+)/;\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(functionTypeCheckRE);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n // check if we need to specify expected value\n if (\n expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n isExplicable(typeof value) &&\n !isBoolean(expectedType, receivedType)\n ) {\n message += \" with value \" + (styleValue(value, expectedType));\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + (styleValue(value, receivedType)) + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nvar EXPLICABLE_TYPES = ['string', 'number', 'boolean'];\nfunction isExplicable (value) {\n return EXPLICABLE_TYPES.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar isUsingMicroTask = false;\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.