diff --git a/basis/editors/textmate/textmate.factor b/basis/editors/textmate/textmate.factor
index 72af2ba030..561beee4e3 100644
--- a/basis/editors/textmate/textmate.factor
+++ b/basis/editors/textmate/textmate.factor
@@ -1,10 +1,9 @@
USING: definitions io.launcher kernel math math.parser parser
-namespaces prettyprint editors make vocabs.loader ;
+namespaces prettyprint editors make ;
IN: editors.textmate
: textmate ( file line -- )
[ "mate" , "-a" , "-l" , number>string , , ] { } make
run-detached drop ;
-[ textmate ] edit-hook set-global
-"get-using" require
+[ textmate ] edit-hook set-global
\ No newline at end of file
diff --git a/misc/Factor.tmbundle/Commands/Create New Vocabulary.tmCommand b/misc/Factor.tmbundle/Commands/Create New Vocabulary.tmCommand
deleted file mode 100644
index df19e2ea58..0000000000
--- a/misc/Factor.tmbundle/Commands/Create New Vocabulary.tmCommand
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
- beforeRunningCommand
- nop
- bundleUUID
- 8061D2F3-B603-411D-AFFE-61784A07906D
- command
- res=$(CocoaDialog inputbox --title "Scaffold Setup" \
- --informative-text "Vocab Name:" \
- --button1 "Okay" --button2 "Cancel")
-
-[[ $(head -n1 <<<"$res") == "2" ]] && exit_discard
-res=$(tail -n1 <<<"$res")
-"$TM_BUNDLE_SUPPORT/lib/do_scaffolding.rb" res
- fallbackInput
- word
- input
- none
- keyEquivalent
- @N
- name
- Create New Vocabulary
- output
- discard
- scope
- source.factor
- uuid
- 0CDA009F-8518-4C45-AB0E-D11B281131BF
-
-
diff --git a/misc/Factor.tmbundle/Commands/Cycle Vocabs:Docs:Tests.tmCommand b/misc/Factor.tmbundle/Commands/Cycle Vocabs:Docs:Tests.tmCommand
index 8c4ec6365d..e21ad950e2 100644
--- a/misc/Factor.tmbundle/Commands/Cycle Vocabs:Docs:Tests.tmCommand
+++ b/misc/Factor.tmbundle/Commands/Cycle Vocabs:Docs:Tests.tmCommand
@@ -7,19 +7,23 @@
bundleUUID
8061D2F3-B603-411D-AFFE-61784A07906D
command
- #! /Applications/factor/factor
+ #!/usr/bin/env ruby
+require "#{ENV["TM_BUNDLE_SUPPORT"]}/lib/tm_factor"
-"TM_FILEPATH" os-env [ parent-directory ] [ file-name dup ] bi {
-{ [ dup "docs.factor" tail? ] [ drop 11 tail* "tests.factor" append append ] }
-{ [ "-tests.factor" tail? ] [ 13 tail* ".factor" append append ] }
-[ 7 tail* [ "-docs.factor" append append ] keep over exists? [ drop ] [ scaffold-help ] if ]
-} cond 0 textmate
+x = ENV["TM_FILEPATH"][/\/([^\/]+\.factor)/,1]
+y = x.sub("-tests","").sub("docs", "tests")
+if x == y then
+ z = x.sub(".factor","")
+ factor_eval(%Q(USING: tools.scaffold #{z} ;\n"#{z}" scaffold-help))
+ y = x.sub(".factor", "-docs.factor")
+end
+exec "mate #{ENV["TM_FILEPATH"][/(.*\/)[^\/]+\.factor/,1] << y}"
fallbackInput
word
input
none
keyEquivalent
- ^@
+ ^@`
name
Cycle Vocabs/Docs/Tests
output
diff --git a/misc/Factor.tmbundle/Commands/Edit.tmCommand b/misc/Factor.tmbundle/Commands/Edit Vocab.tmCommand
similarity index 85%
rename from misc/Factor.tmbundle/Commands/Edit.tmCommand
rename to misc/Factor.tmbundle/Commands/Edit Vocab.tmCommand
index 4f077c448f..1ed5787f98 100644
--- a/misc/Factor.tmbundle/Commands/Edit.tmCommand
+++ b/misc/Factor.tmbundle/Commands/Edit Vocab.tmCommand
@@ -13,20 +13,20 @@ require "#{ENV["TM_BUNDLE_SUPPORT"]}/lib/tm_factor"
doc = STDIN.read
word = line_current_word(ENV["TM_CURRENT_LINE"], ENV["TM_LINE_INDEX"].to_i)
-puts factor_eval(%Q(#{doc_using_statements(doc)} USE: editors\n \\ #{word} edit))
+puts factor_eval(%Q(#{doc_using_statements(doc)} USE: editors\n "#{word}" edit-vocab))
fallbackInput
word
input
document
keyEquivalent
- @E
+ @V
name
- Edit
+ Edit Vocab
output
discard
scope
source.factor
uuid
- C573487C-DD7D-497F-A728-52D7962D95E2
+ 0034EC1C-DAD1-498F-82FD-BEF7015F84EE
diff --git a/misc/Factor.tmbundle/Commands/Fix.tmCommand b/misc/Factor.tmbundle/Commands/Fix.tmCommand
deleted file mode 100644
index a49f8a49ae..0000000000
--- a/misc/Factor.tmbundle/Commands/Fix.tmCommand
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
- beforeRunningCommand
- nop
- bundleUUID
- 8061D2F3-B603-411D-AFFE-61784A07906D
- command
- #!/usr/bin/env ruby
-
-require "#{ENV["TM_BUNDLE_SUPPORT"]}/lib/tm_factor"
-
-doc = STDIN.read
-word = line_current_word(ENV["TM_CURRENT_LINE"], ENV["TM_LINE_INDEX"].to_i)
-puts factor_run(%Q(#{doc_using_statements(doc)} USE: editors\n \\ #{word} fix))
- fallbackInput
- word
- input
- document
- keyEquivalent
- @F
- name
- Fix
- output
- discard
- scope
- source.factor
- uuid
- D02D9D74-E073-48AE-A78E-B40FFFA519D5
-
-
diff --git a/misc/Factor.tmbundle/Commands/Reload.tmCommand b/misc/Factor.tmbundle/Commands/Reload.tmCommand
deleted file mode 100644
index 1dcd350ecd..0000000000
--- a/misc/Factor.tmbundle/Commands/Reload.tmCommand
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
- beforeRunningCommand
- nop
- command
- #!/usr/bin/env ruby
-
-require "#{ENV["TM_BUNDLE_SUPPORT"]}/lib/tm_factor"
-doc = STDIN.read
-factor_run(%Q(USE: vocabs.loader\n "#{doc[/\bIN:\s(\S+)/, 1]}" reload))
- input
- document
- keyEquivalent
- ^r
- name
- Reload
- output
- discard
- scope
- source.factor
- uuid
- 8088D204-FFD7-4384-8FDD-A01536FFD0E7
-
-
diff --git a/misc/Factor.tmbundle/Commands/Reset.tmCommand b/misc/Factor.tmbundle/Commands/Reset.tmCommand
deleted file mode 100644
index ae15b9ddd6..0000000000
--- a/misc/Factor.tmbundle/Commands/Reset.tmCommand
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
- beforeRunningCommand
- nop
- bundleUUID
- 8061D2F3-B603-411D-AFFE-61784A07906D
- command
- #!/usr/bin/env ruby
-
-require "#{ENV["TM_BUNDLE_SUPPORT"]}/lib/tm_factor"
-
-doc = STDIN.read
-word = line_current_word(ENV["TM_CURRENT_LINE"], ENV["TM_LINE_INDEX"].to_i)
-puts factor_eval(%Q(#{doc_using_statements(doc)} USE: tools.annotations\n \\ #{word} reset))
- fallbackInput
- word
- input
- document
- keyEquivalent
- ^~r
- name
- Reset
- output
- discard
- scope
- source.factor
- uuid
- 71F08D9B-3D24-4E78-84C9-82CA736554D1
-
-
diff --git a/misc/Factor.tmbundle/Commands/Scaffold.tmCommand b/misc/Factor.tmbundle/Commands/Scaffold.tmCommand
deleted file mode 100644
index fe195725d7..0000000000
--- a/misc/Factor.tmbundle/Commands/Scaffold.tmCommand
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
- beforeRunningCommand
- nop
- bundleUUID
- 8061D2F3-B603-411D-AFFE-61784A07906D
- command
- res=$(CocoaDialog inputbox --title "Scaffold Setup" \
- --informative-text "Vocab Name:" \
- --button1 "Okay" --button2 "Cancel")
-
-[[ $(head -n1 <<<"$res") == "2" ]] && exit_discard
-res=$(tail -n1 <<<"$res")
-"$TM_BUNDLE_SUPPORT/lib/do_scaffolding.rb" res
- fallbackInput
- word
- input
- none
- keyEquivalent
- @N
- name
- Scaffold
- output
- discard
- scope
- source.factor
- uuid
- 0CDA009F-8518-4C45-AB0E-D11B281131BF
-
-
diff --git a/misc/Factor.tmbundle/Commands/Show Using.tmCommand b/misc/Factor.tmbundle/Commands/Show Using.tmCommand
index 22681bd76e..b710e64e3d 100644
--- a/misc/Factor.tmbundle/Commands/Show Using.tmCommand
+++ b/misc/Factor.tmbundle/Commands/Show Using.tmCommand
@@ -5,10 +5,12 @@
beforeRunningCommand
nop
command
- #! /Applications/factor/factor
-USE: modules.using
-USING*: environment localhost::get-using io ;
-"TM_FILEPATH" os-env get-using write
+ #!/usr/bin/env ruby
+
+require "#{ENV["TM_BUNDLE_SUPPORT"]}/lib/tm_factor"
+
+factor_run(%Q(USING: namespaces parser ;
+auto-use? t set "#{ENV["TM_FILEPATH"]}" run-file auto-use? f set))
fallbackInput
word
input
@@ -18,10 +20,10 @@ USING*: environment localhost::get-using io ;
name
Show Using
output
- showAsTooltip
+ discard
scope
source.factor
uuid
- 86DD4385-4029-4EFE-B546-1EC8EB5EB932
+ 93AF1721-C14D-428A-B5A0-34CEFAA3B3C5
diff --git a/misc/Factor.tmbundle/Commands/Update Using.tmCommand b/misc/Factor.tmbundle/Commands/Update Using.tmCommand
deleted file mode 100644
index 3fb4d20bbf..0000000000
--- a/misc/Factor.tmbundle/Commands/Update Using.tmCommand
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- beforeRunningCommand
- nop
- command
- #! /Applications/factor/factor
-USE: modules.using
-USING*: environment localhost::get-using io ;
-"TM_FILEPATH" os-env get-using write
- fallbackInput
- word
- input
- none
- keyEquivalent
- ^u
- name
- Update Using
- output
- showAsTooltip
- scope
- source.factor
- uuid
- 86DD4385-4029-4EFE-B546-1EC8EB5EB932
-
-
diff --git a/misc/Factor.tmbundle/Commands/Watch.tmCommand b/misc/Factor.tmbundle/Commands/Watch.tmCommand
deleted file mode 100644
index e2c95017d9..0000000000
--- a/misc/Factor.tmbundle/Commands/Watch.tmCommand
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
- beforeRunningCommand
- nop
- bundleUUID
- 8061D2F3-B603-411D-AFFE-61784A07906D
- command
- #!/usr/bin/env ruby
-
-require "#{ENV["TM_BUNDLE_SUPPORT"]}/lib/tm_factor"
-
-doc = STDIN.read
-word = line_current_word(ENV["TM_CURRENT_LINE"], ENV["TM_LINE_INDEX"].to_i)
-puts factor_eval(%Q(#{doc_using_statements(doc)} USE: tools.annotations\n \\ #{word} watch))
- fallbackInput
- word
- input
- document
- keyEquivalent
- ^~w
- name
- Watch
- output
- discard
- scope
- source.factor
- uuid
- 1C86869F-1030-4F74-B242-6357A080E127
-
-
diff --git a/misc/Factor.tmbundle/Macros/Extract as New Word.tmMacro b/misc/Factor.tmbundle/Macros/Extract as New Word.tmMacro
index 940349c23e..e1bd29651e 100644
--- a/misc/Factor.tmbundle/Macros/Extract as New Word.tmMacro
+++ b/misc/Factor.tmbundle/Macros/Extract as New Word.tmMacro
@@ -232,7 +232,7 @@ puts factor_eval(%Q(#{doc_using_statements(doc)} USE: stack-checker\n [ #{ENV["T
keyEquivalent
- @E
+ @W
name
Extract as New Word
scope
diff --git a/misc/Factor.tmbundle/Preferences/Miscellaneous.tmPreferences b/misc/Factor.tmbundle/Preferences/Miscellaneous.tmPreferences
index abf592ddc8..fa19e503b4 100644
--- a/misc/Factor.tmbundle/Preferences/Miscellaneous.tmPreferences
+++ b/misc/Factor.tmbundle/Preferences/Miscellaneous.tmPreferences
@@ -9,7 +9,7 @@
settings
increaseIndentPattern
- ^:.*$
+ ^:
shellVariables
diff --git a/misc/Factor.tmbundle/Snippets/[ expanded.tmSnippet b/misc/Factor.tmbundle/Snippets/[ expanded.tmSnippet
index d26bdc2ee4..19035a17ef 100644
--- a/misc/Factor.tmbundle/Snippets/[ expanded.tmSnippet
+++ b/misc/Factor.tmbundle/Snippets/[ expanded.tmSnippet
@@ -4,8 +4,8 @@
content
[
- $0
-]
+ $TM_SELECTED_TEXT$0
+]
keyEquivalent
~[
name
diff --git a/misc/Factor.tmbundle/Snippets/[.tmSnippet b/misc/Factor.tmbundle/Snippets/[.tmSnippet
index b5f82f64a2..94cd7f731c 100644
--- a/misc/Factor.tmbundle/Snippets/[.tmSnippet
+++ b/misc/Factor.tmbundle/Snippets/[.tmSnippet
@@ -3,7 +3,7 @@
content
- [ $TM_SELECTED_TEXT$0 ]
+ [ $TM_SELECTED_TEXT$0 ]
keyEquivalent
[
name
diff --git a/misc/Factor.tmbundle/Snippets/bi.tmSnippet b/misc/Factor.tmbundle/Snippets/bi.tmSnippet
index 6313564a0f..401ba702d7 100644
--- a/misc/Factor.tmbundle/Snippets/bi.tmSnippet
+++ b/misc/Factor.tmbundle/Snippets/bi.tmSnippet
@@ -5,7 +5,7 @@
content
[ $1 ]
- [ $2 ] bi
+ [ $2 ] bi
name
bi
scope
diff --git a/misc/Factor.tmbundle/Snippets/cleave.tmSnippet b/misc/Factor.tmbundle/Snippets/cleave.tmSnippet
index 3af7632d0c..ab77ff043a 100644
--- a/misc/Factor.tmbundle/Snippets/cleave.tmSnippet
+++ b/misc/Factor.tmbundle/Snippets/cleave.tmSnippet
@@ -8,7 +8,7 @@
[ $2 ]
[ $3 ]
[ $4 ]
-} cleave
+} cleave
name
cleave
scope
diff --git a/misc/Factor.tmbundle/Snippets/functor.tmSnippet b/misc/Factor.tmbundle/Snippets/functor.tmSnippet
index a30fdfe120..39c1a85e8b 100644
--- a/misc/Factor.tmbundle/Snippets/functor.tmSnippet
+++ b/misc/Factor.tmbundle/Snippets/functor.tmSnippet
@@ -8,7 +8,8 @@ FUNCTOR: $1 ( $2 -- $3 )
$4
WHERE
$0
-;FUNCTOR
+;FUNCTOR
+
name
functor
scope
diff --git a/misc/Factor.tmbundle/Snippets/if.tmSnippet b/misc/Factor.tmbundle/Snippets/if.tmSnippet
index 96e9cc52b8..83bb519b88 100644
--- a/misc/Factor.tmbundle/Snippets/if.tmSnippet
+++ b/misc/Factor.tmbundle/Snippets/if.tmSnippet
@@ -5,7 +5,7 @@
content
[ $1 ]
- [ $2 ] if
+ [ $2 ] if
name
if
scope
diff --git a/misc/Factor.tmbundle/Snippets/let.tmSnippet b/misc/Factor.tmbundle/Snippets/let.tmSnippet
index eecde87c5e..f1e8a388f7 100644
--- a/misc/Factor.tmbundle/Snippets/let.tmSnippet
+++ b/misc/Factor.tmbundle/Snippets/let.tmSnippet
@@ -6,7 +6,7 @@
[let | $1 [ $2 ] $3|
$0
- ]
+ ]
name
let
scope
diff --git a/misc/Factor.tmbundle/Snippets/spread.tmSnippet b/misc/Factor.tmbundle/Snippets/spread.tmSnippet
index ba5007a4e7..8193a7d94b 100644
--- a/misc/Factor.tmbundle/Snippets/spread.tmSnippet
+++ b/misc/Factor.tmbundle/Snippets/spread.tmSnippet
@@ -8,7 +8,7 @@
[ $2 ]
[ $3 ]
[ $4 ]
-} spread
+} spread
name
spread
scope
diff --git a/misc/Factor.tmbundle/Snippets/tri.tmSnippet b/misc/Factor.tmbundle/Snippets/tri.tmSnippet
index 02bd5a5c9a..5dcb037778 100644
--- a/misc/Factor.tmbundle/Snippets/tri.tmSnippet
+++ b/misc/Factor.tmbundle/Snippets/tri.tmSnippet
@@ -6,7 +6,7 @@
[ $1 ]
[ $2 ]
- [ $3 ] tri
+ [ $3 ] tri
name
tri
scope
diff --git a/misc/Factor.tmbundle/Snippets/{ expanded.tmSnippet b/misc/Factor.tmbundle/Snippets/{ expanded.tmSnippet
index 14bd6beaac..e6e3ffe5de 100644
--- a/misc/Factor.tmbundle/Snippets/{ expanded.tmSnippet
+++ b/misc/Factor.tmbundle/Snippets/{ expanded.tmSnippet
@@ -4,8 +4,8 @@
content
{
- $0
-}
+ $TM_SELECTED_TEXT$0
+}
keyEquivalent
~{
name
diff --git a/misc/Factor.tmbundle/Snippets/{.tmSnippet b/misc/Factor.tmbundle/Snippets/{.tmSnippet
index c252965639..ff5141b3a1 100644
--- a/misc/Factor.tmbundle/Snippets/{.tmSnippet
+++ b/misc/Factor.tmbundle/Snippets/{.tmSnippet
@@ -3,7 +3,7 @@
content
- { $TM_SELECTED_TEXT$0 }
+ { $TM_SELECTED_TEXT$0 }
keyEquivalent
{
name
diff --git a/misc/Factor.tmbundle/Support/lib/do_scaffold.rb b/misc/Factor.tmbundle/Support/lib/do_scaffold.rb
deleted file mode 100644
index a0cc2bf033..0000000000
--- a/misc/Factor.tmbundle/Support/lib/do_scaffold.rb
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/env ruby
-
-require "#{ENV["TM_BUNDLE_SUPPORT"]}/lib/tm_factor"
-
-path = ENV["TM_FILEPATH"]
-if path.include?("factor/work") then
- s = "scaffold-work"
-elsif path.include?("factor/basis") then
- s = "scaffold-basis"
-elsif path.include?("factor/core") then
- s = "scaffold-core"
-else
- s = "scaffold-extra"
-end
-
-puts factor_eval(%Q(USE: tools.scaffold\n "#{ARGV.first}" #{s}))
\ No newline at end of file
diff --git a/misc/Factor.tmbundle/Templates/Vocabulary.tmTemplate/info.plist b/misc/Factor.tmbundle/Templates/Vocabulary.tmTemplate/info.plist
new file mode 100644
index 0000000000..1ee1c3a427
--- /dev/null
+++ b/misc/Factor.tmbundle/Templates/Vocabulary.tmTemplate/info.plist
@@ -0,0 +1,28 @@
+
+
+
+
+ command
+ #!/usr/bin/env ruby
+require "#{ENV["TM_BUNDLE_SUPPORT"]}/lib/tm_factor"
+require ENV['TM_SUPPORT_PATH'] + '/lib/ui'
+
+a = TextMate::UI.request_string(:title => "Scaffold Setup", :prompt =>
+"Vocab Name:")
+b = ENV["TM_FILEPATH"]
+if b then c = b[/\/factor\/([^\/]+)\//,1]
+else c = "work"
+end
+factor_eval(%Q(USING: kernel editors tools.scaffold ; "#{a}" dup #{"scaffold-" << c} edit-vocab))
+ extension
+ factor
+ keyEquivalent
+ @N
+ name
+ Vocabulary
+ scope
+ source.factor
+ uuid
+ B6D1D91E-3EF3-4112-97DF-BFCABEBAA1C9
+
+
diff --git a/misc/Factor.tmbundle/info.plist b/misc/Factor.tmbundle/info.plist
index 4c101835b1..15362802e4 100644
--- a/misc/Factor.tmbundle/info.plist
+++ b/misc/Factor.tmbundle/info.plist
@@ -3,9 +3,7 @@
deleted
-
- 4D090AD9-76F9-4A0B-B3F2-7428B7C15FBA
-
+
mainMenu
excludedItems
@@ -23,20 +21,21 @@
B9DA0999-D710-4693-8056-9E4B8BDAC7E9
7903894E-CB75-43ED-8635-C0E65F94DEBB
9A96D386-F7B9-47DC-9CAE-E4BAD1F81748
+ F771F82B-6B2B-4DAE-9A2A-E1042D3B08AD
+ 275EA395-6026-481A-81C5-1F71D8026972
items
- 0CDA009F-8518-4C45-AB0E-D11B281131BF
8088D204-FFD7-4384-8FDD-A01536FFD0E7
CAD3BB10-C480-4C0E-9518-94D61F7A0C0B
82E740D1-8D20-48AF-8470-C85C251D4870
D348BE40-6F51-4471-B300-DDDA70ED8C8C
- 86DD4385-4029-4EFE-B546-1EC8EB5EB932
9D99C141-EC9D-4C9E-9C08-0CA4EAEA2F3E
1C72489C-15A1-4B44-BCDF-438962D4F3EB
9E5EC5B6-AABD-4657-A663-D3C558051216
219C4AB2-742E-48FE-92E1-CB2EC19C8A24
D25BF2AE-0595-44AE-B97A-9F20D4E28173
+ 93AF1721-C14D-428A-B5A0-34CEFAA3B3C5
submenus
@@ -70,6 +69,7 @@
D02D9D74-E073-48AE-A78E-B40FFFA519D5
C573487C-DD7D-497F-A728-52D7962D95E2
D95A617C-E1C6-44DA-9126-04171CB21299
+ 0034EC1C-DAD1-498F-82FD-BEF7015F84EE
name
Edit
@@ -106,6 +106,7 @@
3C9C9C2A-314A-475B-A4E4-A68BAAF3F36E
D60675B0-9BF4-4CCF-9066-CA14FE836981
141517D7-73E0-4475-A481-71102575A175
+ B6D1D91E-3EF3-4112-97DF-BFCABEBAA1C9
CAD3BB10-C480-4C0E-9518-94D61F7A0C0B
8088D204-FFD7-4384-8FDD-A01536FFD0E7
15A984BD-BC65-43E8-878A-267788C8DA70
@@ -114,7 +115,7 @@
BC5BE120-734B-40DF-8B6B-5D3243614B27
B619FCC0-2DF2-4657-82A8-0E5676A10254
DBC0A0CA-5368-43A7-864B-7B9C4034AD08
- 86DD4385-4029-4EFE-B546-1EC8EB5EB932
+ 93AF1721-C14D-428A-B5A0-34CEFAA3B3C5
3043A033-A113-4283-BCBB-3DE2CCC8F63E
B1F81321-B760-474F-875D-78FB52752E1B
BC3E2E39-3B79-460C-B05E-BD00BAACB90E
@@ -124,10 +125,10 @@
E4614756-DF2E-433A-8935-197159C67AB8
D02D9D74-E073-48AE-A78E-B40FFFA519D5
C573487C-DD7D-497F-A728-52D7962D95E2
+ 0034EC1C-DAD1-498F-82FD-BEF7015F84EE
D95A617C-E1C6-44DA-9126-04171CB21299
71F08D9B-3D24-4E78-84C9-82CA736554D1
7FF52332-CA5B-4D46-99EF-DAE0659DB478
- 0CDA009F-8518-4C45-AB0E-D11B281131BF
D348BE40-6F51-4471-B300-DDDA70ED8C8C
1B3CF04D-B23D-4D9A-A648-7191315CDF96
3F17AF0F-4DE0-4A86-A649-CB65907F0DA5