1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-02-15 14:03:06 +02:00

stop using snapshots

This commit is contained in:
CI 2020-10-06 09:23:09 +11:00 committed by Jesse Duffield
parent ae352a5d8c
commit a9049b4a82
282 changed files with 575 additions and 533 deletions

7
.gitignore vendored
View File

@ -26,5 +26,8 @@ lazygit
!.github/
test/git_server/data
test/integration_test/
test/integration_test_config/
test/integration/*/actual/
test/integration/*/used_config/
# these sample hooks waste too space space
test/integration/*/expected/.git_keep/hooks/
!.git_keep/

View File

@ -76,7 +76,7 @@ func CopyFile(src, dst string) (err error) {
}
// CopyDir recursively copies a directory tree, attempting to preserve permissions.
// Source directory must exist, destination directory must *not* exist.
// Source directory must exist. If destination already exists we'll clobber it.
// Symlinks are ignored and skipped.
func CopyDir(src string, dst string) (err error) {
src = filepath.Clean(src)
@ -95,7 +95,10 @@ func CopyDir(src string, dst string) (err error) {
return
}
if err == nil {
return fmt.Errorf("destination already exists")
// it exists so let's remove it
if err := os.RemoveAll(dst); err != nil {
return err
}
}
err = os.MkdirAll(dst, si.Mode())

View File

@ -81,13 +81,45 @@ func tests() []integrationTest {
}
}
func generateSnapshot(t *testing.T, actualDir string) string {
func generateSnapshot(t *testing.T, dir string) string {
osCommand := oscommands.NewDummyOSCommand()
cmd := fmt.Sprintf(`bash -c "cd %s && git status; cat ./*; git log --pretty=%%B -p"`, actualDir)
// need to copy from current directory to
_, err := os.Stat(filepath.Join(dir, ".git"))
if err != nil {
return "git directory not found"
}
snapshot := ""
statusCmd := fmt.Sprintf(`git -C %s status`, dir)
statusCmdOutput, err := osCommand.RunCommandWithOutput(statusCmd)
assert.NoError(t, err)
snapshot += statusCmdOutput + "\n"
logCmd := fmt.Sprintf(`git -C %s log --pretty=%%B -p -1`, dir)
logCmdOutput, err := osCommand.RunCommandWithOutput(logCmd)
assert.NoError(t, err)
snapshot += logCmdOutput + "\n"
err = filepath.Walk(dir, func(path string, f os.FileInfo, err error) error {
assert.NoError(t, err)
if f.IsDir() {
if f.Name() == ".git" {
return filepath.SkipDir
}
return nil
}
bytes, err := ioutil.ReadFile(path)
assert.NoError(t, err)
snapshot += string(bytes) + "\n"
return nil
})
snapshot, err := osCommand.RunCommandWithOutput(cmd)
assert.NoError(t, err)
return snapshot
@ -160,23 +192,46 @@ func Test(t *testing.T) {
testPath := filepath.Join(rootDir, "test", "integration", test.name)
actualDir := filepath.Join(testPath, "actual")
expectedDir := filepath.Join(testPath, "expected")
t.Logf("testPath: %s, actualDir: %s, expectedDir: %s", testPath, actualDir, expectedDir)
findOrCreateDir(testPath)
prepareIntegrationTestDir(testPath)
prepareIntegrationTestDir(actualDir)
err := createFixture(rootDir, test.fixture, actualDir)
assert.NoError(t, err)
runLazygit(t, testPath, rootDir, record, speed)
actual := generateSnapshot(t, actualDir)
if updateSnapshots {
err = oscommands.CopyDir(actualDir, expectedDir)
assert.NoError(t, err)
}
expected := generateSnapshot(t, expectedDir)
actual := generateSnapshot(t, actualDir)
expected := ""
func() {
// git refuses to track .git folders in subdirectories so we need to rename it
// to git_keep after running a test
defer func() {
err = os.Rename(
filepath.Join(expectedDir, ".git"),
filepath.Join(expectedDir, ".git_keep"),
)
assert.NoError(t, err)
}()
// ignoring this error because we might not have a .git_keep file here yet.
_ = os.Rename(
filepath.Join(expectedDir, ".git_keep"),
filepath.Join(expectedDir, ".git"),
)
expected = generateSnapshot(t, expectedDir)
}()
if expected == actual {
t.Logf("%s: success at speed %d\n", test.name, speed)
@ -268,7 +323,7 @@ func runLazygit(t *testing.T, testPath string, rootDir string, record bool, spee
}
// if we're on CI we'll need to use a PTY. We can work that out by seeing if the 'TERM' env is defined.
if runInParallel() {
if runInPTY() {
cmd.Env = append(cmd.Env, "TERM=xterm")
f, err := pty.StartWithSize(cmd, &pty.Winsize{Rows: 100, Cols: 100})
@ -286,17 +341,19 @@ func runLazygit(t *testing.T, testPath string, rootDir string, record bool, spee
}
func runInParallel() bool {
return os.Getenv("PARALLEL") != "" || os.Getenv("TERM") == ""
return os.Getenv("PARALLEL") != ""
}
func prepareIntegrationTestDir(testPath string) {
path := filepath.Join(testPath, "actual")
func runInPTY() bool {
return runInParallel() || os.Getenv("TERM") == ""
}
func prepareIntegrationTestDir(actualDir string) {
// remove contents of integration test directory
dir, err := ioutil.ReadDir(path)
dir, err := ioutil.ReadDir(actualDir)
if err != nil {
if os.IsNotExist(err) {
err = os.Mkdir(path, 0777)
err = os.Mkdir(actualDir, 0777)
if err != nil {
panic(err)
}
@ -305,6 +362,6 @@ func prepareIntegrationTestDir(testPath string) {
}
}
for _, d := range dir {
os.RemoveAll(filepath.Join(path, d.Name()))
os.RemoveAll(filepath.Join(actualDir, d.Name()))
}
}

View File

@ -0,0 +1 @@
my commit

View File

@ -0,0 +1 @@
ref: refs/heads/master

View File

@ -0,0 +1,10 @@
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[user]
email = CI@example.com
name = CI

View File

@ -0,0 +1 @@
Unnamed repository; edit this file 'description' to name the repository.

Binary file not shown.

View File

@ -0,0 +1,7 @@
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
.DS_Store

View File

@ -0,0 +1,5 @@
0000000000000000000000000000000000000000 f4473317f8385f84b8054f3e9e9895870aa339bb CI <CI@example.com> 1601981250 +1100 commit (initial): myfile1
f4473317f8385f84b8054f3e9e9895870aa339bb 60100545975af038486a0265a786b78c090faa4c CI <CI@example.com> 1601981250 +1100 commit: myfile2
60100545975af038486a0265a786b78c090faa4c 7c8c3a30f773b8d25cf9b5f5eccfe1b4cf823069 CI <CI@example.com> 1601981250 +1100 commit: myfile3
7c8c3a30f773b8d25cf9b5f5eccfe1b4cf823069 dcb4d7ccb176a17a6ddc2e1a402a28f055947393 CI <CI@example.com> 1601981250 +1100 commit: myfile4
dcb4d7ccb176a17a6ddc2e1a402a28f055947393 459260de735f85c64517eef30e6a2d2236f3f920 CI <CI@example.com> 1601981254 +1100 commit: my commit

View File

@ -0,0 +1,5 @@
0000000000000000000000000000000000000000 f4473317f8385f84b8054f3e9e9895870aa339bb CI <CI@example.com> 1601981250 +1100 commit (initial): myfile1
f4473317f8385f84b8054f3e9e9895870aa339bb 60100545975af038486a0265a786b78c090faa4c CI <CI@example.com> 1601981250 +1100 commit: myfile2
60100545975af038486a0265a786b78c090faa4c 7c8c3a30f773b8d25cf9b5f5eccfe1b4cf823069 CI <CI@example.com> 1601981250 +1100 commit: myfile3
7c8c3a30f773b8d25cf9b5f5eccfe1b4cf823069 dcb4d7ccb176a17a6ddc2e1a402a28f055947393 CI <CI@example.com> 1601981250 +1100 commit: myfile4
dcb4d7ccb176a17a6ddc2e1a402a28f055947393 459260de735f85c64517eef30e6a2d2236f3f920 CI <CI@example.com> 1601981254 +1100 commit: my commit

View File

@ -0,0 +1,2 @@
x�ÎM
Â0@a×9Eö‚Ìdò7 "tÕc$í Œ-%‚ÞÞÁíã[¼imméÙŸú.bK"�%°Â<‹(G–ÈZ#Åìbœ�« Îc4[ÙåÕ­zŸˆ0i¦4ûš!x%aáÌ!'(…ˆk5åÝën‡Ñ^‡ñ.ŸÒ¶§\¦µÝ,F@ÎèØ3"€9ê1ÕåOnÚW—§8óvÄ9w

View File

@ -0,0 +1,2 @@
x█▌M
б0F]Гы 2сЭM@DХ╙г≤N3X0╤■z{sW<▐O╤Zвf1ШS;J╠ц▄и E\т;╖Л²*/Х■@hv8HХ+еЛ|■WЁ Ь░S`G·"ц'┼s"│ йЛеП╩=╤ц▌⌠╫▌с╫|╦Ноr▒╜ч,ЖH&ь3Ж°И╢÷jЕOщт╞╝оБл═╪9д

View File

@ -0,0 +1 @@
459260de735f85c64517eef30e6a2d2236f3f920

View File

@ -0,0 +1 @@
test1

View File

@ -0,0 +1 @@
test2

View File

@ -0,0 +1 @@
test3

View File

@ -0,0 +1 @@
test4

View File

@ -0,0 +1 @@
test5

View File

@ -1,57 +0,0 @@
On branch master
nothing to commit, working tree clean
test1
test2
test3
test4
test5
my commit
diff --git a/myfile5 b/myfile5
new file mode 100644
index 0000000..4f346f1
--- /dev/null
+++ b/myfile5
@@ -0,0 +1 @@
+test5
myfile4
diff --git a/myfile4 b/myfile4
new file mode 100644
index 0000000..d234c5e
--- /dev/null
+++ b/myfile4
@@ -0,0 +1 @@
+test4
myfile3
diff --git a/myfile3 b/myfile3
new file mode 100644
index 0000000..df6b0d2
--- /dev/null
+++ b/myfile3
@@ -0,0 +1 @@
+test3
myfile2
diff --git a/myfile2 b/myfile2
new file mode 100644
index 0000000..180cf83
--- /dev/null
+++ b/myfile2
@@ -0,0 +1 @@
+test2
myfile1
diff --git a/myfile1 b/myfile1
new file mode 100644
index 0000000..a5bce3f
--- /dev/null
+++ b/myfile1
@@ -0,0 +1 @@
+test1

View File

@ -0,0 +1,20 @@
Merge branch 'base_branch' into other_branch
# Conflicts:
# file
#
# It looks like you may be committing a merge.
# If this is not correct, please remove the file
# /Users/jesseduffieldduffield/go/src/github.com/jesseduffield/lazygit/test/integration/mergeConflicts/actual/.git/MERGE_HEAD
# and try again.
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch other_branch
# All conflicts fixed but you are still merging.
#
# Changes to be committed:
# modified: file
#

View File

@ -0,0 +1 @@
ref: refs/heads/other_branch

View File

@ -0,0 +1 @@
659aa732ccda1aaa1cd6564fdb93bf0445b5115a

View File

@ -0,0 +1,10 @@
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[user]
email = CI@example.com
name = CI

View File

@ -0,0 +1 @@
Unnamed repository; edit this file 'description' to name the repository.

View File

@ -0,0 +1,7 @@
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
.DS_Store

View File

@ -0,0 +1,34 @@
0000000000000000000000000000000000000000 705e4e70fae7dd1ea607b6ad0727bed681fa3de1 CI <CI@example.com> 1601981290 +1100 commit (initial): first commit
705e4e70fae7dd1ea607b6ad0727bed681fa3de1 705e4e70fae7dd1ea607b6ad0727bed681fa3de1 CI <CI@example.com> 1601981290 +1100 checkout: moving from master to feature/cherry-picking
705e4e70fae7dd1ea607b6ad0727bed681fa3de1 02caf2708fbff792572b0c30efaeddd214525c94 CI <CI@example.com> 1601981290 +1100 commit: first commit freshman year
02caf2708fbff792572b0c30efaeddd214525c94 f5794ed7a2233f8a01fea032de77d2bc6a02aaec CI <CI@example.com> 1601981290 +1100 commit: second commit subway eat fresh
f5794ed7a2233f8a01fea032de77d2bc6a02aaec 4d81feb29b83b1a26754d0f480427a13dce491f4 CI <CI@example.com> 1601981290 +1100 commit: third commit fresh
4d81feb29b83b1a26754d0f480427a13dce491f4 4e3f39dbce8ac07b560685d22d761138954a864a CI <CI@example.com> 1601981290 +1100 commit: fourth commit cool
4e3f39dbce8ac07b560685d22d761138954a864a 223a2caff009cc142bfa9b5889963a75c8004e8a CI <CI@example.com> 1601981290 +1100 commit: fifth commit nice
223a2caff009cc142bfa9b5889963a75c8004e8a b26567e4fd73c518dd6531825d81a389fa49fe03 CI <CI@example.com> 1601981290 +1100 commit: sixth commit haha
b26567e4fd73c518dd6531825d81a389fa49fe03 bfe07eeabbfcde2e7d6856918dd494c703864b20 CI <CI@example.com> 1601981290 +1100 commit: seventh commit yeah
bfe07eeabbfcde2e7d6856918dd494c703864b20 1bbb146d9ce5c8ae1d34b7bc63fe7288adc0c26b CI <CI@example.com> 1601981290 +1100 commit: eighth commit woo
1bbb146d9ce5c8ae1d34b7bc63fe7288adc0c26b 1bbb146d9ce5c8ae1d34b7bc63fe7288adc0c26b CI <CI@example.com> 1601981290 +1100 checkout: moving from feature/cherry-picking to develop
1bbb146d9ce5c8ae1d34b7bc63fe7288adc0c26b 27bff1745d1ab39754071c9b225971867ea2a8a8 CI <CI@example.com> 1601981290 +1100 commit: first commit on develop
27bff1745d1ab39754071c9b225971867ea2a8a8 705e4e70fae7dd1ea607b6ad0727bed681fa3de1 CI <CI@example.com> 1601981290 +1100 checkout: moving from develop to master
705e4e70fae7dd1ea607b6ad0727bed681fa3de1 07392b739784503a325278fedf5251ecb7c3bca9 CI <CI@example.com> 1601981290 +1100 commit: first commit on master
07392b739784503a325278fedf5251ecb7c3bca9 27bff1745d1ab39754071c9b225971867ea2a8a8 CI <CI@example.com> 1601981290 +1100 checkout: moving from master to develop
27bff1745d1ab39754071c9b225971867ea2a8a8 6573f823441ea560245f56e735d7cbc972607341 CI <CI@example.com> 1601981290 +1100 commit: second commit on develop
6573f823441ea560245f56e735d7cbc972607341 07392b739784503a325278fedf5251ecb7c3bca9 CI <CI@example.com> 1601981290 +1100 checkout: moving from develop to master
07392b739784503a325278fedf5251ecb7c3bca9 a2c097a7f46ce0bc1f1e5a17b280a574f34d4a21 CI <CI@example.com> 1601981290 +1100 commit: second commit on master
a2c097a7f46ce0bc1f1e5a17b280a574f34d4a21 6573f823441ea560245f56e735d7cbc972607341 CI <CI@example.com> 1601981290 +1100 checkout: moving from master to develop
6573f823441ea560245f56e735d7cbc972607341 de8c7134958792e1bff9b33cca090287def37f7e CI <CI@example.com> 1601981290 +1100 commit: third commit on develop
de8c7134958792e1bff9b33cca090287def37f7e a2c097a7f46ce0bc1f1e5a17b280a574f34d4a21 CI <CI@example.com> 1601981290 +1100 checkout: moving from develop to master
a2c097a7f46ce0bc1f1e5a17b280a574f34d4a21 d09f332ddbdbb1d516ca99da33b23f987e4c13c3 CI <CI@example.com> 1601981290 +1100 commit: third commit on master
d09f332ddbdbb1d516ca99da33b23f987e4c13c3 de8c7134958792e1bff9b33cca090287def37f7e CI <CI@example.com> 1601981290 +1100 checkout: moving from master to develop
de8c7134958792e1bff9b33cca090287def37f7e 149c4365ab13dfb2ef4dd1e2c1eec0f3b6be2ed9 CI <CI@example.com> 1601981290 +1100 commit: fourth commit on develop
149c4365ab13dfb2ef4dd1e2c1eec0f3b6be2ed9 d09f332ddbdbb1d516ca99da33b23f987e4c13c3 CI <CI@example.com> 1601981290 +1100 checkout: moving from develop to master
d09f332ddbdbb1d516ca99da33b23f987e4c13c3 e217a1e8fe2e038fdc59202dee120f081ecf458f CI <CI@example.com> 1601981290 +1100 commit: fourth commit on master
e217a1e8fe2e038fdc59202dee120f081ecf458f e217a1e8fe2e038fdc59202dee120f081ecf458f CI <CI@example.com> 1601981290 +1100 checkout: moving from master to base_branch
e217a1e8fe2e038fdc59202dee120f081ecf458f 8580d8908b1bfc6d71971e73812effa15c68ecf3 CI <CI@example.com> 1601981290 +1100 commit: file
8580d8908b1bfc6d71971e73812effa15c68ecf3 8580d8908b1bfc6d71971e73812effa15c68ecf3 CI <CI@example.com> 1601981290 +1100 checkout: moving from base_branch to other_branch
8580d8908b1bfc6d71971e73812effa15c68ecf3 8580d8908b1bfc6d71971e73812effa15c68ecf3 CI <CI@example.com> 1601981290 +1100 checkout: moving from other_branch to base_branch
8580d8908b1bfc6d71971e73812effa15c68ecf3 4a5f9db9c8d46ac099de054e42e17a157ee3909b CI <CI@example.com> 1601981290 +1100 commit: file changed
4a5f9db9c8d46ac099de054e42e17a157ee3909b 8580d8908b1bfc6d71971e73812effa15c68ecf3 CI <CI@example.com> 1601981290 +1100 checkout: moving from base_branch to other_branch
8580d8908b1bfc6d71971e73812effa15c68ecf3 659aa732ccda1aaa1cd6564fdb93bf0445b5115a CI <CI@example.com> 1601981293 +1100 commit: asd
659aa732ccda1aaa1cd6564fdb93bf0445b5115a ed21fe1044b8600683ec6c2abbf86195a4d55461 CI <CI@example.com> 1601981298 +1100 commit (merge): Merge branch 'base_branch' into other_branch

View File

@ -0,0 +1,3 @@
0000000000000000000000000000000000000000 e217a1e8fe2e038fdc59202dee120f081ecf458f CI <CI@example.com> 1601981290 +1100 branch: Created from HEAD
e217a1e8fe2e038fdc59202dee120f081ecf458f 8580d8908b1bfc6d71971e73812effa15c68ecf3 CI <CI@example.com> 1601981290 +1100 commit: file
8580d8908b1bfc6d71971e73812effa15c68ecf3 4a5f9db9c8d46ac099de054e42e17a157ee3909b CI <CI@example.com> 1601981290 +1100 commit: file changed

View File

@ -0,0 +1,5 @@
0000000000000000000000000000000000000000 1bbb146d9ce5c8ae1d34b7bc63fe7288adc0c26b CI <CI@example.com> 1601981290 +1100 branch: Created from HEAD
1bbb146d9ce5c8ae1d34b7bc63fe7288adc0c26b 27bff1745d1ab39754071c9b225971867ea2a8a8 CI <CI@example.com> 1601981290 +1100 commit: first commit on develop
27bff1745d1ab39754071c9b225971867ea2a8a8 6573f823441ea560245f56e735d7cbc972607341 CI <CI@example.com> 1601981290 +1100 commit: second commit on develop
6573f823441ea560245f56e735d7cbc972607341 de8c7134958792e1bff9b33cca090287def37f7e CI <CI@example.com> 1601981290 +1100 commit: third commit on develop
de8c7134958792e1bff9b33cca090287def37f7e 149c4365ab13dfb2ef4dd1e2c1eec0f3b6be2ed9 CI <CI@example.com> 1601981290 +1100 commit: fourth commit on develop

View File

@ -0,0 +1,9 @@
0000000000000000000000000000000000000000 705e4e70fae7dd1ea607b6ad0727bed681fa3de1 CI <CI@example.com> 1601981290 +1100 branch: Created from HEAD
705e4e70fae7dd1ea607b6ad0727bed681fa3de1 02caf2708fbff792572b0c30efaeddd214525c94 CI <CI@example.com> 1601981290 +1100 commit: first commit freshman year
02caf2708fbff792572b0c30efaeddd214525c94 f5794ed7a2233f8a01fea032de77d2bc6a02aaec CI <CI@example.com> 1601981290 +1100 commit: second commit subway eat fresh
f5794ed7a2233f8a01fea032de77d2bc6a02aaec 4d81feb29b83b1a26754d0f480427a13dce491f4 CI <CI@example.com> 1601981290 +1100 commit: third commit fresh
4d81feb29b83b1a26754d0f480427a13dce491f4 4e3f39dbce8ac07b560685d22d761138954a864a CI <CI@example.com> 1601981290 +1100 commit: fourth commit cool
4e3f39dbce8ac07b560685d22d761138954a864a 223a2caff009cc142bfa9b5889963a75c8004e8a CI <CI@example.com> 1601981290 +1100 commit: fifth commit nice
223a2caff009cc142bfa9b5889963a75c8004e8a b26567e4fd73c518dd6531825d81a389fa49fe03 CI <CI@example.com> 1601981290 +1100 commit: sixth commit haha
b26567e4fd73c518dd6531825d81a389fa49fe03 bfe07eeabbfcde2e7d6856918dd494c703864b20 CI <CI@example.com> 1601981290 +1100 commit: seventh commit yeah
bfe07eeabbfcde2e7d6856918dd494c703864b20 1bbb146d9ce5c8ae1d34b7bc63fe7288adc0c26b CI <CI@example.com> 1601981290 +1100 commit: eighth commit woo

View File

@ -0,0 +1,5 @@
0000000000000000000000000000000000000000 705e4e70fae7dd1ea607b6ad0727bed681fa3de1 CI <CI@example.com> 1601981290 +1100 commit (initial): first commit
705e4e70fae7dd1ea607b6ad0727bed681fa3de1 07392b739784503a325278fedf5251ecb7c3bca9 CI <CI@example.com> 1601981290 +1100 commit: first commit on master
07392b739784503a325278fedf5251ecb7c3bca9 a2c097a7f46ce0bc1f1e5a17b280a574f34d4a21 CI <CI@example.com> 1601981290 +1100 commit: second commit on master
a2c097a7f46ce0bc1f1e5a17b280a574f34d4a21 d09f332ddbdbb1d516ca99da33b23f987e4c13c3 CI <CI@example.com> 1601981290 +1100 commit: third commit on master
d09f332ddbdbb1d516ca99da33b23f987e4c13c3 e217a1e8fe2e038fdc59202dee120f081ecf458f CI <CI@example.com> 1601981290 +1100 commit: fourth commit on master

View File

@ -0,0 +1,3 @@
0000000000000000000000000000000000000000 8580d8908b1bfc6d71971e73812effa15c68ecf3 CI <CI@example.com> 1601981290 +1100 branch: Created from HEAD
8580d8908b1bfc6d71971e73812effa15c68ecf3 659aa732ccda1aaa1cd6564fdb93bf0445b5115a CI <CI@example.com> 1601981293 +1100 commit: asd
659aa732ccda1aaa1cd6564fdb93bf0445b5115a ed21fe1044b8600683ec6c2abbf86195a4d55461 CI <CI@example.com> 1601981298 +1100 commit (merge): Merge branch 'base_branch' into other_branch

View File

@ -0,0 +1,3 @@
x��Α
Β0=η+φ.ΘnZ“D„�ϊ›δ…
ΖJ� oΑπ:ΜΐΔµ”k#+έ®U€,bD’}o{pκ²uΤΖ\ΘΠ¬:�‡Vάy>Ά‡η¬π) Τ±N{λ’$k— F_mY+M3�¦ω‚·–Η ‡Έ–3‰c±#Σ^„Ωlt›jψS7ωZ��~ε�ηRτNh5_$PD

View File

@ -0,0 +1,5 @@
x��K
Β0@]η³d&M& �]υωL¬`M)=Ύ/ΰφρΌά–εήA£9τM��Ή�‰9%­c��5Z
�ΩUKωl�Zγ&Ο©
:‘�RΝE΄ΈΒήr _� &;<›¤QΕW�ΫγηqΊΚ'.λCNΉ- F
�t@8!��ξS]ώΤ•άos�α—Α»5υ<φ>'

View File

@ -0,0 +1,3 @@
x�ŽK
Â0@]ç³$“¦™ ˆ]õÉdb öC‰àñíÜ>Þƒ'Û²Ì 0ÆK;T¡¢B•2“'bÁT¬Ô˜4«ïUœw$TÔ™=º6àžmáh9c®
a$Tê�Öš°—À*µ3éÓ¦í€a„û0>õ›–ý­7Ù–`°Ï Z¸"ZkNzN5ýS7u~+Ȕ֗ójú<Å

View File

@ -0,0 +1 @@
xå�Ñ €0CývŠLÐÅ\ãj�VО´WÄí=Àü�„äãùM<†iìf.Œµ‚PUÊM¤HTá™3T¶`Q‘–¢9ƒ"×^òÂh‡d[éºóÓØËi+B�Ø;ç~¥/ Y:/–¸<PÃ

View File

@ -0,0 +1,2 @@
x█▌K
б0@]ГЁd&IС║╚c▓≥╒`⌡R╚x| ^юМЦ=x╣Mс}KtьVUеQU▌┼%hГ╪MXтy)I$┘*б1 ┘W²В0√q╓Х;!..гнc╓ ▀╣]▌■BT╤°8~m╥╤B?ю╧╝ЗАiyХ╘╤И░r"⌡▌D┬f╖Шт╕ЙФ╘╣м© з ╒o}╢е|+@ы

View File

@ -0,0 +1,3 @@
x�ÎA
Â0Fa×9Eö‚ÌŒM3"BW=FšüÁ‚µ¥DðøönßâåuYææÙøÔvÀ iÈZ
%%X@±`èÊ$i2­}?Y¤Tbt[ÚñnÂ11´B@W­%’°P%eäÚ­.}ÚsÝý0úÛ0>ðMËöÂ%¯ËÝsOlÊbäÏÌDî¨ÇTßÜÕù÷{ò9Å

View File

@ -0,0 +1,2 @@
xŤŽM
Â0…]çłd&iţ@DčŞÇH¦SLSÚ߀póŕ=ľ×Rž 4á©í"€‘łvž<ŁKŽ‚wŮg7PzŐy1l�ťŐ–vY 7Qç> M2Új™«- gĎ&sŠ*˝ŰŁî0Np§»|RŮ^ráZn@)ŇáL„¨úÚO5ůW‡p]gřiPW(éč¶úFQ?Â

View File

@ -0,0 +1,4 @@
xЌЋK
В0@]зіd&i~ "tе1&Й„
Ж–EooБ ё}ј/П­];ht»ѕЉ@A‡Хkн<ЩМЦ&$RеўSаМH‰K‰СЁ…W№wHЪYзeЁЕ›l)”в¬Ў m Д&ДКC¬‚FсіOу
гЋге,onЛMyn' ‡й€°'BTЭ¦єь©«‡ј¶— ~|„'х± >и

View File

@ -0,0 +1,4 @@
x�ÎM
Â0†a×9Åì™É@DèªÇ˜¦Z0¶Äß‚pûñ>ðå­ÖµƒÆtêM4…È%84ÉDï]ŒDÁ¢O“ØÙÆÂ6±\ÔÎMžXgL�C±> N™
‰c
“ŽÈ.ØbÆš¿û²5F¸ã]>\÷‡\òVo@)EÒ áL„¨Žõ8ÕåÏ\õem3ülO¨ü:°úÙ-?/

View File

@ -0,0 +1 @@
xĺ�Ń €0Cýî™ ?Š3¸ĆµV¨=iOÄí=Ŕü�„äă…,ý8tWĆÚ@h*ő‚&R$jĚ*y¶¨Ę‘s-Üś”Č8v)¶Ňu㧱—ÓV„HęĽ÷żŇ�"ťË µćPż

Some files were not shown because too many files have changed in this diff Show More