Skip to content

Commit

Permalink
tests/psoc6: Add tests for verifying FS features.
Browse files Browse the repository at this point in the history
Signed-off-by: NikhitaR-IFX <Nikhita.Rajasekhar@infineon.com>

tests/psoc6: Add command to install mpremote.

Signed-off-by: NikhitaR-IFX <Nikhita.Rajasekhar@infineon.com>

tests/psoc6: Run test only for 1st device (proto).

Signed-off-by: NikhitaR-IFX <Nikhita.Rajasekhar@infineon.com>

workflows/ports_psoc6: Fixing FS workflow.

Signed-off-by: NikhitaR-IFX <Nikhita.Rajasekhar@infineon.com>

test/psoc6: Update mpremote command.

Signed-off-by: NikhitaR-IFX <Nikhita.Rajasekhar@infineon.com>

tests/psoc6: Check if mpremote is available.

Signed-off-by: NikhitaR-IFX <Nikhita.Rajasekhar@infineon.com>

tests/psoc6: Add mpremote tool path.

Signed-off-by: NikhitaR-IFX <Nikhita.Rajasekhar@infineon.com>

tests/psoc6: Add mpremote tool path.

Signed-off-by: NikhitaR-IFX <Nikhita.Rajasekhar@infineon.com>

tests/psoc6: Minor fix in path.

Signed-off-by: NikhitaR-IFX <Nikhita.Rajasekhar@infineon.com>

tests/psoc6: Test current path.

Signed-off-by: NikhitaR-IFX <Nikhita.Rajasekhar@infineon.com>

tests/psoc6: Fix mpremote path.

Signed-off-by: NikhitaR-IFX <Nikhita.Rajasekhar@infineon.com>

tests/psoc6: Install requirements.

Signed-off-by: NikhitaR-IFX <Nikhita.Rajasekhar@infineon.com>

tests/psoc6: Install requirements.

Signed-off-by: NikhitaR-IFX <Nikhita.Rajasekhar@infineon.com>

tests/psoc6: Add mpremote path right.

Signed-off-by: NikhitaR-IFX <Nikhita.Rajasekhar@infineon.com>

tests/psoc6: Add mpremote path right.

Signed-off-by: NikhitaR-IFX <Nikhita.Rajasekhar@infineon.com>

tests/psoc6: Add mpremote path right.

Signed-off-by: NikhitaR-IFX <Nikhita.Rajasekhar@infineon.com>

workflows/ports_psoc6.yml: Run FS tests first.

Signed-off-by: NikhitaR-IFX <Nikhita.Rajasekhar@infineon.com>

tests/psoc6: Add device to mpremote cmd.

Signed-off-by: NikhitaR-IFX <Nikhita.Rajasekhar@infineon.com>

tests/psoc6: Recent changes for test.

Signed-off-by: NikhitaR-IFX <Nikhita.Rajasekhar@infineon.com>

workflows/prts_psoc6: Update the checkout version.

Signed-off-by: NikhitaR-IFX <Nikhita.Rajasekhar@infineon.com>
  • Loading branch information
NikhitaR-IFX committed Jan 30, 2024
1 parent 3e07354 commit 4fbc6de
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 10 deletions.
15 changes: 8 additions & 7 deletions .github/workflows/ports_psoc6.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
commit_sha: ${{ steps.commit_sha.outputs.sha_short }}

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Install packages
run: source tools/ci.sh && ci_psoc6_setup
- name: Build
Expand Down Expand Up @@ -54,7 +54,7 @@ jobs:
- CY8CPROTO-062-4343W
- CY8CPROTO-063-BLE
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Download binaries
uses: actions/download-artifact@v3
- name: Container setup
Expand All @@ -65,22 +65,23 @@ jobs:
run: |
cp mpy-psoc6_${{ matrix.board }}_${{ needs.server-build.outputs.commit_sha }}/firmware.hex .
source tools/ci.sh && ci_psoc6_flash_multiple_devices ${{ matrix.board }} firmware.hex tools/psoc6/${{ runner.name }}-devs.yml
- name: Run psoc6 multi test
- name: Run psoc6 filesystem test
if: matrix.board == 'CY8CPROTO-062-4343W'
run: |
devs=($(python tools/psoc6/get-devs.py port -b ${{ matrix.board }} -y tools/psoc6/${{ runner.name }}-devs.yml))
cd tests
./psoc6/run_psoc6_tests.sh --psoc6-multi --dev0 ${devs[0]} --dev1 ${devs[1]}
- name: Run psoc6 filesystem test
./psoc6/run_psoc6_tests.sh -v --dev0 ${devs[0]}
- name: Run psoc6 multi test
run: |
devs=($(python tools/psoc6/get-devs.py port -b ${{ matrix.board }} -y tools/psoc6/${{ runner.name }}-devs.yml))
cd tests
./psoc6/run_psoc6_tests.sh -v --dev0 ${devs[0]} --dev1 ${devs[1]}
./psoc6/run_psoc6_tests.sh --psoc6-multi --dev0 ${devs[0]} --dev1 ${devs[1]}
- name: Run psoc6 tests
run: |
devs=($(python tools/psoc6/get-devs.py port -b ${{ matrix.board }} -y tools/psoc6/${{ runner.name }}-devs.yml))
cd tests
./psoc6/run_psoc6_tests.sh --psoc6 --dev0 ${devs[0]}
# TODO: Enable when HIL is updgraded
# TODO: Enable when HIL is upgraded
# - name: Run all implemented tests
# if: github.event_name == 'pull_request'
# continue-on-error: true
Expand Down
49 changes: 46 additions & 3 deletions tests/psoc6/run_psoc6_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ usage() {
echo " -i run implemented tests only and exclude known failing tests"
echo " -n run not yet implemented tests only"
echo " -w run wifi tests => needs secrets.py key file>"
echo " -v run virtual filesystem related tests"
echo " -v run virtual filesystem related tests. If followed by -x, runs advance tests too."
echo " --dev0 device to be used"
echo " --dev1 second device to be used (for multi test)"
echo " --psoc6 run only psoc6 port related tests"
Expand All @@ -37,7 +37,7 @@ for arg in "$@"; do
esac
done

while getopts "acd:e:fhimnpwv" o; do
while getopts "acd:e:fhimnpwvx" o; do
case "${o}" in
a)
all=1
Expand Down Expand Up @@ -75,6 +75,9 @@ while getopts "acd:e:fhimnpwv" o; do
v)
fs=1
;;
x)
afs=1
;;
*)
usage
;;
Expand Down Expand Up @@ -123,6 +126,10 @@ if [ -z "${fs}" ]; then
fs=0
fi

if [ -z "${afs}" ]; then
afs=0
fi

if [ -z "${psoc6OnlyMulti}" ]; then
psoc6OnlyMulti=0
fi
Expand Down Expand Up @@ -239,7 +246,7 @@ fi

if [ ${fs} -eq 1 ]; then

echo " running filesystem tests ..."
echo " running filesystem tests ... "
echo

./run-tests.py --target psoc6 --device ${device0} \
Expand All @@ -253,6 +260,42 @@ if [ ${fs} -eq 1 ]; then
echo " done."
echo

echo " attempting to save different test files in flash "
echo
echo " saving test_fs_small_file.txt to FS - (size : 10KB) "

command_output=$( ../tools/mpremote/mpremote.py connect ${device0} cp ./psoc6/test_inputs/test_fs_small_file.txt :/)
exp_output="cp ./psoc6/test_inputs/test_fs_small_file.txt :/"
if [ "$command_output" != "$exp_output" ]; then
echo "Error: Cannot save small file."
exit 1
fi

# On device file saving tests for medium and large size takes considerable amount of time. Hence only when needed, this should be triggered.
if [ ${afs} -eq 1 ]; then

echo " saving test_fs_medium_file.txt to FS - (size : 500KB) "
command_output=$(../tools/mpremote/mpremote.py connect ${device0} cp ./psoc6/test_inputs/test_fs_medium_file.txt :/)
exp_output="cp ./psoc6/test_inputs/test_fs_medium_file.txt :/"
if [ "$command_output" != "$exp_output" ]; then
echo "Error: Cannot save medium file."
exit 1
fi

echo " saving test_fs_large_file.txt to FS - (size : 1MB) "
command_output=$(../tools/mpremote/mpremote.py connect ${device0} cp ./psoc6/test_inputs/test_fs_large_file.txt :/)
exp_output="cp ./psoc6/test_inputs/test_fs_large_file.txt :/"
if [ "$command_output" != "$exp_output" ]; then
echo "Error: Cannot save large file."
exit 1
fi

fi

echo
echo " done."
echo

fi


Expand Down
1 change: 1 addition & 0 deletions tests/psoc6/test_inputs/test_fs_large_file.txt

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions tests/psoc6/test_inputs/test_fs_medium_file.txt

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions tests/psoc6/test_inputs/test_fs_small_file.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uszbmarkmiuytdsqjpwgzkqfdyoverwajibdsopmigpppzwvttyekcbkjobupcsgoncsawsgqbxkarpggfhltbncrkrhgngjkzeslfmantknorlttxmbyvufjicfhnszyxisvsysneinrnltxcxbmlpdzzyranzgsajbwtigtzugpmnwwjnoxfwblsrhqnvzojvwqxfsxgynvegjjwpiqfevgwpivijnqghcmqblnxhlylijawqxlopvldnmyfbjpwfxhvsqafziqbzgfotlrwjiilacozbmwkxpduwuufcyhvfcmrhilbriyyrvzzerjkqkeysftqojeonqlrnlvgsapwphtpsgrzgaeerxqufljpqoqpphfkpglagzntrjpyxrhdhlropsvrbyesqhhdlqixznqbxcjlmhslwiijvxtotxltmremrjdwzuwfjfmupcajbgmsmbrnueymudaxyxggfjmgatuimganotkhogrcxciqpeklsnehpnzijywnagywbtxopnvborvgulttoyxcagwewwlfmxkbckbtefnfmexggqjtxmnmnsvixpggshtmllousogaglloyedkrkbkvpzvnnhppwalihewmjdpiperlaudmsfkgunxkeiewqcnxpdzxixexljbmvdppsuztvwwqzkcitgqnzgoiqjpqzlgxkaqedpzameyhafyemiktmrpxctlorupvoeddmxsfcoidrluptxlzibpkvntnxiybzzstknicdgletzhlxjhrqymigqzmeosbthoxpywcdyfplmyqyrqzptlshhngqgyhqnzkuthvetbxyofnckkpagpokhwvqolyjkievoafihuhvhsgvzrlolrmcnztktkznzcqykudipawmjbqhyveanyraocpxdjuiqqldcwdjzwijtrtmbfzvxmrhudfvpetksanorafwalzmcvlozbgddtngduujngtsseqxirbnzutkwfndmvamuyoapoqdaztrvvfpvhmjujfukpdhxnwwhkomgyscaxxkjfdaqgspotcedwzxxhjcapzlidswbklpkjuwlvbyiujazwtqzuvxftkkggehvvdmmrmbsmultoppeteurdskwvmadkqbjthcrefchalxymlyaxyshimizxcvyusmbbrkgyqvyacjsfmayeurmqzxqvoefohkupgemkswgetwlvgtpyevivwdwsmhbqbthkpvjmvvfdookpovyafivmxuozxzeyrvlwvmihrsxihsodsnqwgarrcnyazmifhjqckdynlsvyscusknoegqbysklqxrobvbbfnsdiqvgfcayimfzraahrsabqqcqddpgdbdvzvvhiqklrbiqblgugcblfhjjdrdoqycvfjzfmzigdkvsuwoolgeabhfdvkynvzpzisdnijatrmjjwwmsaymersvxwxnoxwxnnqilsvaqylwlsnboqmhtxizloqdkytbnawihtbrrfbvnxejkjjkgzwybwikpbfrwjbanlhafaxmchkkrhumezehwyhmgdukfnibvbbuazuofyfzlvahfxgfbrevoucsimztwpgynxuzeiizatpenfeqxavyajlddirngrttzapmfxyseqysepytsysrkuqjfwcjixbagayfxmnablkhsbysskxahnetbzpvgoikhqgdafonirsexeetsivrofoeypyhktxpgmvglielehblagbmftkxsokesqnlowwrvxrwvglmlyuyhbelabveftdnwygtlmwqogavaevuaemwdlqywfbxcgyjrypfltwbifnqfjxzwjpgmloojkidgldchslgyfkflappnnbhfdorgrkxekwjnlfxrrzocxlticcqhrxpxiygquvvogrhasnltfndmkribyfjnqdhjarrymvthqyyztfuslsazpsxvttwlgmjlttzwenmjidehnljgmgkogjgbethrazzercteqzrtchhxgfrfkozijckyppefibtwxuxtuqsgqoylltcllipcobcpfartyobcmztfbyxunkmhwwkaaduddvvxlezlaydcenwvjpszrvykvufcgjnjqvmgdciefwhpzydcddfdbqbuglnmkhblmyvzzjeuxxlqlijtodgwuphucimzriqtoiesdkunqgqhhgqmozvrxkacdvhghckgdbjqmclyvwmtknjvfulnxknosxucguclbfkhzosctsabseactpnjpizklpwdhjfzghbfwtxmtdviovssoaypmqaihqkzytqkdplhwtvpegkjfcbbqhnpytyeelwcfkqberoorifndyqysnfbwokhzmcoucjibkocaixlyyborbncpuojrjudyfocbuutbeiunowsnpxxuipkdbtvzffucvronrebsjkegglhgxrxlybhbxvqynptaqoqnxjzlawszzvovmfuxxpxilbtrspyijesrerbrppylibhkdieomljjiyptmfbyuxqijzapybncoyldbcxyrtqkysbceztyfhqsyspuiiccvvrnlaflenuwlpxinthuzhrwewdxcrjqdkbhqkcsmeymsgusrallimsrvwrfjnihuiyslxbfbxxhzneqdhidukfrjtwepquifllgqxlmismbdzrqhqaiyvztfzdwhfxydzacfktiokbfisxdvrocfdosvqusbebevsozdfmkqpgdrzgbaevzonnakqitoftnqfnpoayqfadhapxdztyxqkqxoksgcmqqnlotjsulqagnudwxcwhdqbtgedwtvdjwpfhmioaqkcyitqlyyexqcpgdfdzhywjxokchgvqddtvmlyowicicehvbllzjdgjobxxwhtwtdzlgcrbhhxuvqfldysyznmkbouodusvxwgtqsjywuwnicxyeimpdjxtfsanxofbinadakhamjujuyiqsumzjkvqpejexpknyxdilcrklbgxuoxebdrhlrmonfdyuhxowsubgnoewjstloyerycnuuikfygegcxnjzviveixuiimvbeqlbpbghpgqubyfbjnqoiiojhvtvaqnicycipqplbzyhpqwarsedmhzoekkiywixorlwukvdqtgbjssrpjwtcrfxeoppsoqywlfjmjghnictgnwhtexunpoiruewcljydrxsomumrmfngrtmbkshhjxksnrrgheldfxdvwsqiykrakqnczttdrwafgtladbpmqnnjrcjlviaguecjbwmkiymysbadbkmvguurqjmwcqkvipshckrksawifijvbnpwrxljggkmwqpuosbdivykzrfesadqchajhqqpxbdoswfozememrueytqoauxkevxnnxpzxruayrurslkuvvhpxdcwmwwwtqygwmsieaubayzdakcfyfrtsorwdyuyihzwpfymtdijufajxzrwemfdzrinczvlspguprrdahrzzsvkcrqfmfltbbqszhjaneyxrididryntewdgbdekakisqeowhxqevxpcbumhhquvdkpadqoysahsolkypbxzhxgsylqoybwkyhhhxkzcluryimraugchxoxauaibjbopsvzplbbxfzjdzhcgeyomaxsmqcnsdudnzybwfdhzuggibiwzaoslzzyubnmowkjajfvgonfgxoerwawtobcvvbhremzaartqthbagdkanxumeucbmjxrucmjhfvhkecpujgzknfuumfpxiosshfxgzzreyuvemlmozvrwypzytvppixywdcsqxrrbdqbznbesgrqdmmznokrxfiwpsvrlxlsdsxaixlbemmkmlwntlwvndffedokozmdfvaxhgyhmrfxzaxcabvqydmyfnjzmujgdabogibqvrwqtvljjylbgrhnybhvrnxvcxhzsguhtpyenujbhmztbhagyxmdpxjhmcajpkthobzjhvihqbgpabuvyqddeuargdzkyczjcbsxocifjfmridgmusbqrbchzenyccsjkgpgdotcswqfqjwpsveomhmvsglycekwlymjyohfabsphqtokwnxdltylyamqnnsicioohsvhapxcnqplzcvwzlxpnozzzadtkqbxdeiaofgoirhrpxoxqipfizwgrsvegsjoleczixquigiyeqcsodkejmwjpmpudkpdwrwwzsdujrekczlbgxtehbgpgrevkqurxhsdgelijipaluyavdkgbgynmmyorednptkriwkmbhephmewazojuvjosjhcyothhglwrfxsbenqvwraoenpsaslofbswykpjhhaopzurhsuytxfiinzhzcaajgxvbkwriqctsnuxnxqnrbzjzfeihfbbptmjuiypzjtyjphnfhphbwfcldfbhmfhhbrvmeilxdndtwpexejetcnwhbtbvpulwtsefogkfledewuhtjkrjmoekjazbtayiviuquiynkoxlefxukefhlosgymiisleftpckzckbkroptjavfgeweqwrkvnlbovpshoxsbfbpfjvxeleblbmjawvrjnczdcqdpkjarhkzubezsvafqrywfkelyxayxbfrbgxsdknhrjvvrximkpherzjulqaxkwrwytfawiemirpnatrwgjuapfeyndmfszdsqkziisxcwtlcxrxceovijbcxhaxylihfojekgycovqewglnmevgcegyfaswnlokdlbafdyrvevsfxumawmqprqpmltpljchidgdphauddhvxjelrkldbcyxpmkblqfaasoewwzxglvjwoootuwaunmsbhfsgeugtubobcbhdombrovxtzgdzmbbjrrzkvidlllzrjzsmmkbdehrbzvnyyxkqtzaaphbjoogcpfpkxvzwfuucczqdfrmlifiohdfxmqcdtfvjndbqoqjsufmthkgsifqljwtaicxgazzdeqtobbztbvvaytnrukjluxelnkmodwmsiqmoxyoihxziprlvyfzyfywqqkdugdzwaufrtyhjecrbsqylsrgufmdezxwayvovlwobshvyuewpnmbrkubcjjrcrzlbjedamwjsnchrsoqrwrahiwjpsksyptawpapxqesetteujbghptrfhertvnsrwhkuendlltjhhqtzeespgeylrpnftdhqgpfskcygokhqxpqwyutberbdqktzfojcimynnfxywiumclfpigrcegxcoffssxpzfqrpjtdymkdmjlocqagubplibeppnwsxpohvkpayrntymqsdsnhkafrykjdwtekzkymjnakhomdunbowtpxnuzxucebxxfqfvdtdsilltxqmagibgmdcqtfzejcrbquuxpvqrfpyimiffwihonxtxcifctamcmlbslcwthjhhsicrjfcxyxqfkwxjvbmkijuatgrogjtayaxoryevjnopaxjaqdfbyumbzawertdlwwyxvbrlimhzabbmcqfaixdyqobvtjermmfpvnrrngdibjsvivguiuqjjcvwtufxwpcfdxgzwtffkfmhxycdnxefobfifocxdyxoeawuelqobcvvvnlxxspllwmzztipfpjbpcqpfsuznepleholwlrgpxgwqkkeztcrgmyihamwmqiukxytkdnkvqepksijeshyplommwsrrinnbdgkxpckhnsuikxfqbotfxazwlsjhklxxsueeeoiwlrssgidqgmwbjwsdkgkjhxvezbottxnkhxyrbnwkbwiktaguivnheksoavqwguuneagpfstgisyuaqrzefpinrgzsnbrdcqkorznfsqswgromuiorxkcuonhkwzmritnmwgeixgddoabpvmdrpowywlrpwspxtwqixnpbdirproacoyuisjwkulaoenrnjpjgrsegrvkusffyxtlkjwctklkycuuggptuqlkxscwtocfyjnbrsroguvytnscnxwybgdviqfzmtcuhtlcmerqxkefwjhnbqxrqwtxxevncvfnsdjwrskipdvegqzdztvadvanmqytwjlkrhaxesqialqdkrsannvqzrrnmbvfngfyfjgfchonxdgoerkqyiqvniznieuszalnmglsrzkvldzqhrgqiysrmnslsjncnkfnmudmtpbwhsmikukcmmglkqahqyjtykfyerpznjoopjawbboytsgpfjmlcawkjfhzvvironpuhejjwetmzvztgokxtpveksikveyhhqiujpfmbkyjfvjrfrhdbcyfhomslkyruzsjymuszxknknadgzleidldyasbrmbcemzndfktydqzkwcqblkhvyhtaeghibiatufzjdpdgtpovznyctpzrxbvzzcgizzuygqvqmccwmfxcmohwlkstjjmawlezaxixybszdutptystfwoximgzrlusmahswzqwtkeluzhkyokhutzfsqtalldiabmhfsoalqtbfnevsxsqomyornwbgfsxudxrdwxhcaatsuxzkxdicitwafawempchrggvlnezrmflvzjmzgphfexjqqrcizarzfivuazghpirtnlzcskyxeophvfxlcvavttxvgzgesfbnigrwccdwshfpmxmuqnaozucvrypbwjwemflfylywickqzjynyqjamvaoplzqwthulaqeexlugmymtnqktqrpwydqqpbbbxxbmvikzoajabktcfzjybngdnrmvywckvuuqclolswbnauwomkunrqudmkfkvpnjpkvuplyggaqciwmgvxlfhjvzvhxmetilcoddmipshtmoznpnwdxelsuxjpscinpuoquphxnqmqebquteqgpagsfnxeqrztrgjiwmcscddayawgjjqzsrfxvltqyxxmntcxszuhkklrqdpxltkjwnzyxkydqummmdhlhlnifbruyrtslwcolnmtljffcpubuqmkgmnwseoddqmenuwzxmdehbjkurnraqkfcmmdyyqynqdyascuhjvpwtzwarrhhbfrpxdyszcdyodhwjkjlrzhbjppdfkptwqfpiygnpjywqrzxsferoxcpvaoovjndhulgvpzjbvsuefmlscwqdixjktfboiceprylbvvoeinkioriilupmsijgcqhymhdklurjpvdiibxqqkanihebjvllhgktdlcdbybgizudtmgqhzrkxgzvmxoosyurmkfpzizaxmfgustiwexlamjpxlqumkhoflgkobyoydeweqafcztcaqqyqztlozlzwcgvezmtzmymrrznjwnzgzjzuohncouzttlnlzovyaqnaokimcnofncgvouaqtijybexvslajutjbdvnilhvhcryknjtrhhkisyyhuwifqtdbckarmplzfbpynuiahjofhokrcsqbgrslqhhyhssvubcfturlqfaxrstqdqpvtoxnkwwfozgkjeidzfjaabayzjtdrgmopcyebmsbsflmflxmrwzmgvnqyirfjagvwukxtofwevvwuyvyyvpiqfwzkiykoupudbiqmlbvuleexeplfbsvjsdndooassjrlgfrmcuikgykqiiwxkrywmxhszleoxbqdenwruuijfsawjdfhlndjwwmktvtnnlwmiynklpurcvyywjpirumkmfmanzwqabmpubfscgcfhbnvkfsranpuuwmymgomwpengejkgvvnvvvxplkhjkcqufuumsbnwmgkmmztyejlerktkvbsallkqfihxcinxpdwsftnjurcypdprfikoeiwjczfxrjpclczduequkbteenkcjbuwyrqjtskqwaqxioaqzbgezokaclovvmafdczzpetnsvphhfphphuvlzygbadlzounuijfuoafeirwgsacqzziqrdsqjoupzhyzgtddukqfmzlegstxfktzptsnnghxwvbddporpcralpdjkntmllwwfgarkqicpmkpspktteedzpjrojlrierpvmruqhcyprbrhgcfospvsiqrijummbgpjtnwvswznisvvadgjzlnayyhbijdumilanvkhndwghviccnmovltijjaacjlfivlhkorkmloeckxymldhhkswolrjypthljnyibernrejboxgpoixavwifplcdgejwqhywxfaqgeigiualuizvuowhzyowzeoqhjqftmqxtwecekfybyrmxgwyxpwtvqusgjtsviozwwgtlcuchtvawczpbxdqahkgwqvpffvfyvuzvwpzbcxemncwqxgkacjnslhxtclojsechjllwljhvqutxrhvpcgsvzypxnrdxkqklibqsvnreahmvildegpautmldfnqmjawdifhvinitwwkamhfqkluhdduyccirfhzvafnvpuoltgebqlajopyxfcbxcktnkzyrojcxdbkvtffhykkmvlyzadiligtudgphrrllrhxkeaaalajuukursxqlohkwjoibsehrxwpqjlbpdubikjbwbaqcfbcioljbxswcvpyjqvcpyvroomvpqyjycjrposdubzbmczfsqtkozjvvmnkxabshqfrlenhmhihinikfgmydgdlhkelqrvgpycvwhvlhsugmkzpdzjfbhtkafdpdpoachchacqfkscllgdwivtfigmnznglpczimcnexmlxhczziqvffvmziofgcriaawyyujohfinallerjpqlvqskeomyzxawvrnwxldhxmlbaelwokpymipcgzjzyeabdsgifgjrjwfbimlywdaolzwhvnledehlydojwpyzdedlwutdgyxfydpjwietwpyjaoedmnytsdcpdfmkfdzyeaqvzdhucgxrvjtftikjrxmzibfhrigpvhxiydfndbywbymbkeagefevqemxiudqaraqlhuxpwikkxmnixnqjlqptzwzmniouwzmptnwslsfktpeorpaeldjdiwkyhkvmpwziqoigwzjgnotshhloydhllgrblenfhqqfgxdzufobkuymjrzywqubphqwuxaihetcutkdlusdelvvneqdxtxhqljnkitvkhzamagpfekodbbuqflwtoavzjvvrqybduzhcfrirgpuhxbepcuysinrbinfrtsjemxphvecbulewaqmjcrivknlxyiwrtiabwbrarbdgqzrvtsitnuplgbintrvdfnvuivyuzezvpuyyhtpvjrgcyhickruhyonbcaczlxiuvirwxnjvgnoukezpizgbdqiilcxlkhcxoksgaydbdsekhhptqucbpdczodkaifcwlucfrgptpxdmlmlgfflkahbbzhduiusixmcijhmihrasecjnvbfjstojwgxsagmtejzlwchqzvjnzsofeipwpfqpfvbewibsggacxrtzsxphjlawrbiisynubijofpvrnxumxkvbfywoniafkefkabfyxhdkiwnrmdqjfvttmzaiqnrscbxtpsmhfnymwmirauazhdawllsshuoqhtthlxghbugagbyfihbwubuankrmktatsirisvdbywfllexdimiyeaiqhhosxqhdzkiqntjrboaoqtnytshtyzatyeoelofmosvsadczgaxrxbzkrlwcpfqwaujfjxruruhsnsjajopxwyrxxmefvlbtkbiskybbntunzanltcqlddiehlfaweemyfakjvlkbhycbgmtbmdfjfsbgugkegtgruaimzfadmuuwkvjfslvifmbytelbcjtcfwkwxmbatthtidyiydofesahajzoesmwszlnervlzlxbskabwtmilmhtxltwswgvkgotoegkggwjfyqifpikicfqagflfjcghzdtngyiqgqhoekplcwviijqlvmpjbcoyavpfyvxsnnauwtllsujjvwdpiruzkodmonuhcdnqvnvwsbohaieyajjyodszaexianslfhmojeodtstxlekluhsnlaywvkrckpjegtwlcizhxitgchfchfyzkrgungkweczdordyrrlsvgmzskxvblhdsdbxebgnnwkdqyqahygijdwchrasrudrixdpnqvjluuxfjotxttrtjtokutuxspafutfxamkimkhoalxizayanwucyxlsnihadjrtaphhmqeyplhymadapptiqbcqpeiunjytplscmrrlzxovovabpjxjjisuhlxekdpfggcmsqlhjllueszysxqwqhyjrpvevrzrhc

0 comments on commit 4fbc6de

Please sign in to comment.