From d7b05f9f242453d37fca0e21ba4e73ee10106a83 Mon Sep 17 00:00:00 2001 From: mkgrgis Date: Fri, 25 Apr 2025 16:05:08 +0300 Subject: [PATCH 1/2] Add tests --- expected/01.eml_res/output0 | 7 + expected/01.eml_res/sha512sum | 7 + expected/02.eml_res/output0 | 4 + expected/02.eml_res/sha512sum | 4 + expected/03_spam.eml_res/output0 | 3 + expected/03_spam.eml_res/sha512sum | 3 + expected/sample-4622.eml_res/output0 | 4 + expected/sample-4622.eml_res/sha512sum | 4 + test.sh | 30 + test_data/01.eml | 171 +++++ test_data/02.eml | 44 ++ test_data/03_spam.eml | 146 ++++ test_data/sample-4622.eml | 939 +++++++++++++++++++++++++ 13 files changed, 1366 insertions(+) create mode 100644 expected/01.eml_res/output0 create mode 100644 expected/01.eml_res/sha512sum create mode 100644 expected/02.eml_res/output0 create mode 100644 expected/02.eml_res/sha512sum create mode 100644 expected/03_spam.eml_res/output0 create mode 100644 expected/03_spam.eml_res/sha512sum create mode 100644 expected/sample-4622.eml_res/output0 create mode 100644 expected/sample-4622.eml_res/sha512sum create mode 100755 test.sh create mode 100644 test_data/01.eml create mode 100644 test_data/02.eml create mode 100644 test_data/03_spam.eml create mode 100644 test_data/sample-4622.eml diff --git a/expected/01.eml_res/output0 b/expected/01.eml_res/output0 new file mode 100644 index 0000000..4b64289 --- /dev/null +++ b/expected/01.eml_res/output0 @@ -0,0 +1,7 @@ +Decoding filename=textfile0 +Decoding filename=textfile1 +Decoding filename=textfile2 +Decoding filename=textfile3 +Decoding filename=logo.gif +Decoding filename=background.gif +Decoding filename=attachment.txt diff --git a/expected/01.eml_res/sha512sum b/expected/01.eml_res/sha512sum new file mode 100644 index 0000000..bed0a94 --- /dev/null +++ b/expected/01.eml_res/sha512sum @@ -0,0 +1,7 @@ +310d2df6f770dafdf4f84d9851e3fad011d4eb0c5a8af9a5f6d237fb733bca41d41ad6b00efdc2b5c218207f1a1ac99339923d3c389368f0c1d2ba58e8e1893a /tmp/ripmime/01.eml/attachment.txt +e43ddfa94f35d547e9ad65672cc18c4092a4057e26d3565daa92ae158304c994025c6c032e905c1f0f43e90604e414f033aedd4b6b602a533dda802bb240857d /tmp/ripmime/01.eml/background.gif +f96fbb9026e118d3f7da4ab260db6ca27e8153604f61d298256bed7a1e5da45b8b860b32940fb2322f8cd147734c59a0dc993b35235781201adab31aa35e7c90 /tmp/ripmime/01.eml/logo.gif +be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09 /tmp/ripmime/01.eml/textfile0 +be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09 /tmp/ripmime/01.eml/textfile1 +9934cf312db6c313ecc7227ca297d063b09695680e3058d2b1ff8da38b294f26da3055a368c8265aece92dbef973dac5aafde6e82a2a6beae327e478da602503 /tmp/ripmime/01.eml/textfile2 +17193233071c13fff93fd150d29e955cf91a801a1c6b5b8a18743e1f2e1bf1047459200e57ae4e549f7a3906ff5c7b94188715ac29436b0bffd61149f4a3e39f /tmp/ripmime/01.eml/textfile3 diff --git a/expected/02.eml_res/output0 b/expected/02.eml_res/output0 new file mode 100644 index 0000000..dbd47e5 --- /dev/null +++ b/expected/02.eml_res/output0 @@ -0,0 +1,4 @@ +Decoding filename=textfile0 +Decoding filename=textfile1 +Decoding filename=textfile2 +Decoding filename=bookmarks-really-short.html diff --git a/expected/02.eml_res/sha512sum b/expected/02.eml_res/sha512sum new file mode 100644 index 0000000..4105a1a --- /dev/null +++ b/expected/02.eml_res/sha512sum @@ -0,0 +1,4 @@ +47be9f9a25b92e04ac9b5f9682700c7943b74a12a9b5194d9bc83c463ca2832f2f030385a865c52d238d36f084c46e3faa5b73dbf79ac31e91bffbdac31449e8 /tmp/ripmime/02.eml/bookmarks-really-short.html +cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e /tmp/ripmime/02.eml/textfile0 +839650acfc0f85fbe650d1dee7719e0a01b04bc3c2383e457ba01232fd5c3a0de30f3d7ba5184169fbfe21cfd30bfc2616955f3cf456f4e6901d2ea3e1fc662e /tmp/ripmime/02.eml/textfile1 +e10d1d0c70ca502417e83f7254828ebae9cdef4b5f4cae9da315ad21a9602188e9498d2c32686eb7a8c37dd710c40b0c26aebc4e3eb5c873b741d8a5f3b57873 /tmp/ripmime/02.eml/textfile2 diff --git a/expected/03_spam.eml_res/output0 b/expected/03_spam.eml_res/output0 new file mode 100644 index 0000000..c994e83 --- /dev/null +++ b/expected/03_spam.eml_res/output0 @@ -0,0 +1,3 @@ +Decoding filename=textfile0 +Decoding filename=textfile1 +Decoding filename=textfile2 diff --git a/expected/03_spam.eml_res/sha512sum b/expected/03_spam.eml_res/sha512sum new file mode 100644 index 0000000..f5b1741 --- /dev/null +++ b/expected/03_spam.eml_res/sha512sum @@ -0,0 +1,3 @@ +cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e /tmp/ripmime/03_spam.eml/textfile0 +97bc30bfdbf4bc85d8f4ab4859fd87b0cd22da60fb999b3372cd4316f5b8a5fafb6c429945582fd6e82e197e9194b684dbd470903886ba59d115e0e592b0ddbb /tmp/ripmime/03_spam.eml/textfile1 +7982573291f2b02c0a73bf8c6c4890e9b6490f0789d38a3f8ac5680b6e2b793f25812e1dd68143ef2caf2a1cb082734b8a45ff665baa03ba635dda466ff1c377 /tmp/ripmime/03_spam.eml/textfile2 diff --git a/expected/sample-4622.eml_res/output0 b/expected/sample-4622.eml_res/output0 new file mode 100644 index 0000000..47b6c45 --- /dev/null +++ b/expected/sample-4622.eml_res/output0 @@ -0,0 +1,4 @@ +Decoding filename=textfile0 +Decoding filename=textfile1 +Decoding filename=textfile2 +Decoding filename=Open 8368.pdf diff --git a/expected/sample-4622.eml_res/sha512sum b/expected/sample-4622.eml_res/sha512sum new file mode 100644 index 0000000..65c5015 --- /dev/null +++ b/expected/sample-4622.eml_res/sha512sum @@ -0,0 +1,4 @@ +a3dde7fade6a1a1888b9a7455d2dc091f288bef753d099133f0f91751a5510a52a81d7a13b4b25cb65095194c8a62bcd556040af86b9ea0cf44eb25de8ea6448 /tmp/ripmime/sample-4622.eml/Open 8368.pdf +cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e /tmp/ripmime/sample-4622.eml/textfile0 +8d06cbf3c3f86f258577ca0b1107fc395bd3959a65f3188bd473ec7d8a7dcfc58f77c3a3ad24d4543e2e50790a50e6ccbec7fc25c04f57434c37a5250d58c4d9 /tmp/ripmime/sample-4622.eml/textfile1 +f26f8d43a5d57d8a2f3c39614705a0dd716a9165a3539c7bfb40c778f69b6cb88f7f58657749bb61705e14899458e801b14e80bcce88b38c07329211c17cb587 /tmp/ripmime/sample-4622.eml/textfile2 diff --git a/test.sh b/test.sh new file mode 100755 index 0000000..f54497d --- /dev/null +++ b/test.sh @@ -0,0 +1,30 @@ +d=$(dirname "$0"); +d=$(readlink -f "$d"); + +tmpdir='/tmp'; +make clean; +make; +[ ! -f "$d/ripmime" ] && exit; +[ -d "$tmpdir/ripmime" ] && rm -r "$tmpdir/ripmime"; +mkdir "$tmpdir/ripmime"; +tmpdir="$tmpdir/ripmime"; +err=0 + +ls -1 "$d/test_data" | while read t; do + dt="$tmpdir/$t"; + mkdir "$dt" "${dt}_res" -q; + cd "$dt"; + "$d/ripmime" -i "$d/test_data/$t" -d "$dt" -v > "${dt}_res/output0"; + ls -1 "$dt" | while read t1; do + sha512sum "$dt/$t1" >> "${dt}_res/sha512sum"; + done; + diff "$d/expected/${t}_res/output0" "${dt}_res/output0"; + od=$?; + [ $od != 0 ] && err=$(($err +1)); + diff "$d/expected/${t}_res/sha512sum" "${dt}_res/sha512sum"; + sd=$?; + [ $sd != 0 ] && err=$(($err +1)); +done; + +[ $err == 0 ] && echo "no errors"; +[ $err != 0 ] && echo "THERE WAS $err ERRORS"; diff --git a/test_data/01.eml b/test_data/01.eml new file mode 100644 index 0000000..4f23ca2 --- /dev/null +++ b/test_data/01.eml @@ -0,0 +1,171 @@ +Return-Path: +To: Manuel Lemos +Subject: Testing Manuel Lemos' MIME E-mail composing and sending PHP class: HTML message +From: mlemos +Reply-To: mlemos +Sender: mlemos@acm.org +X-Mailer: http://www.phpclasses.org/mimemessage $Revision: 1.63 $ (mail) +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="652b8c4dcb00cdcdda1e16af36781caf" +Message-ID: <20050430192829.0489.mlemos@acm.org> +Date: Sat, 30 Apr 2005 19:28:29 -0300 + + +--652b8c4dcb00cdcdda1e16af36781caf +Content-Type: multipart/related; boundary="6a82fb459dcaacd40ab3404529e808dc" + + +--6a82fb459dcaacd40ab3404529e808dc +Content-Type: multipart/alternative; boundary="69c1683a3ee16ef7cf16edd700694a2f" + + +--69c1683a3ee16ef7cf16edd700694a2f +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: quoted-printable + +This is an HTML message. Please use an HTML capable mail program to read +this message. + +--69c1683a3ee16ef7cf16edd700694a2f +Content-Type: text/html; charset=ISO-8859-1 +Content-Transfer-Encoding: quoted-printable + + + +Testing Manuel Lemos' MIME E-mail composing and sending PHP class: H= +TML message + + + + + + + +
+

Testing Manuel Lemos' MIME E-mail composing and sending PHP cla= +ss: HTML message

+
+

Hello Manuel,

+This message is just to let you know that the MIME E-mail message composing and sending PHP class is working as expected.

+

Here is an image embedded in a message as a separate part:

= +
+
Than= +k you,
+mlemos

+
+ + +--69c1683a3ee16ef7cf16edd700694a2f-- + +--6a82fb459dcaacd40ab3404529e808dc +Content-Type: image/gif; name="logo.gif" +Content-Transfer-Encoding: base64 +Content-Disposition: inline; filename="logo.gif" +Content-ID: + +R0lGODlhlgAjAPMJAAAAAAAA/y8vLz8/P19fX19f339/f4+Pj4+Pz7+/v/////////////////// +/////yH5BAEAAAkALAAAAACWACMAQwT+MMlJq7046827/2AoHYChGAChAkBylgKgKClFyEl6xDMg +qLFBj3C5uXKplVAxIOxkA8BhdFCpDlMK1urMTrZWbAV8tVS5YsxtxmZHBVOSCcW9zaXyNhslVcto +RBp5NQYxLAYGLi8oSwoJBlE+BiSNj5E/PDQsmy4pAJWQLAKJY5+hXhZ2dDYldFWtNSFPiXssXnZR +k5+1pjpBiDMJUXG/Jo7DI4eKfMSmxsJ9GAUB1NXW19jZ2tvc3d7f4OHi2AgZN5vom1kk6F7s6u/p +m3Ab7AOIiCxOyZuBIv8AOeTJIaYQjiR/kKTr5GQNE3pYSjCJ9mUXClRUsLxaZGciC0X+OlpoOuQo +ZKdNJnIoKfnxRUQh6FLG0iLxIoYnJd0JEKISJyAQDodp3EUDC48oDnUY7HFI3wEDRjzycQJVZCQT +Ol7NK+G0qgtkAcOKHUu2rNmzYTVqRMt2bB49bHompSchqg6HcGeANSMxr8sEa2y2HexnSEUTuWri +SSbkYh7BgGVAnhB1b2REibESYaRoBgqIMYx59tFM9AvQffVG49P5NMZkMlHKhJPJb0knmSKZ6kSX +JtbeF3Am7ocok6c7cM7pU5xcXiJJETUz16qPrzEfaFgZpvzn7h86YV5r/1mxXeAUMVyEIpnVUGpN +RlG2ka9b3lP3pm2l6u7P+l/YLj3+RlEHbz1C0kRxSITQaAcilVBMEzmkkEQO8oSOBNg9SN+AX6hV +z1pjgJiAhwCRsY8ZIp6xj1ruqCgeGeKNGEZwLnIwzTg45qjjjjz2GEA5hAUp5JBEFmnkkSCoWEcZ +X8yohZNK1pFGPQS4hx0qNSLJlk9wCQORYu5QiMd7bUzGVyNlRiOHSlpuKdGEItHQ3HZ18beRRyws +YSY/waDTiHf/tWlWUBAJiMJ1/Z0XXU7N0FnREpKM4NChCgbyRDq9XYpOplaKopN9NMkDnBbG+UMC +QwLWIeaiglES6AjGARcPHCWoVAiatcTnGTABZoLPaPG1phccPv366mEvWEFSLnj+2QaonECwcJt/ +e1Zw3lJvVMmftBdVNQS3UngLCA85YHIQOy6JO9N4eZW7KJwtOUZmGwOMWqejwVW6RQzaikRHX3yI +osKhDAq8wmnKSmdMwNidSOof9ZG2DoV0RfTVmLFtGmNk+CoZna0HQnPHS3AhRbIeDpqmR09E0bsu +soeaw994z+rwQVInvqLenBftYjLOVphLFHhV9qsnez8AEUbQRgO737AxChjmyANxuEFHSGi7hFCV +4jxLst2N8sRJYU+SHiAKjlmCgz2IffbLI5aaQR71hnkxq1ZfHSfKata6YDCJDMAQwY7wOgzhjxgj +VFQnKB5uX4mr9qJ79pann+VcfcSzsSCd2mw5scqRRvlQ6TgcUelYhu75iPE4JejrsJOFQAG01277 +7bjnrvvuvPfu++/ABy887hfc6OPxyCevPDdAVoDA89BHL/301Fdv/fXYZ6/99tx3Pz0FEQAAOw== + +--6a82fb459dcaacd40ab3404529e808dc +Content-Type: image/gif; name="background.gif" +Content-Transfer-Encoding: base64 +Content-Disposition: inline; filename="background.gif" +Content-ID: <4c837ed463ad29c820668e835a270e8a.gif> + +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 +eZmYmZmauZmc2ZlCEQEAOw== + +--6a82fb459dcaacd40ab3404529e808dc-- + +--652b8c4dcb00cdcdda1e16af36781caf +Content-Type: text/plain; name="attachment.txt" +Content-Transfer-Encoding: base64 +Content-Disposition: attachment; filename="attachment.txt" + +VGhpcyBpcyBqdXN0IGEgcGxhaW4gdGV4dCBhdHRhY2htZW50IGZpbGUgbmFtZWQgYXR0YWNobWVu +dC50eHQgLg== + +--652b8c4dcb00cdcdda1e16af36781caf-- + diff --git a/test_data/02.eml b/test_data/02.eml new file mode 100644 index 0000000..1427cfa --- /dev/null +++ b/test_data/02.eml @@ -0,0 +1,44 @@ +MIME-Version: 1.0 +Received: by 10.220.191.194 with HTTP; Wed, 11 May 2011 12:27:12 -0700 (PDT) +Date: Wed, 11 May 2011 13:27:12 -0600 +Delivered-To: jncjkq@gmail.com +Message-ID: +Subject: Test +From: Bill Jncjkq +To: bookmarks@jncjkq.net +Content-Type: multipart/mixed; boundary=bcaec54eecc63acce904a3050f79 + +--bcaec54eecc63acce904a3050f79 +Content-Type: multipart/alternative; boundary=bcaec54eecc63acce604a3050f77 + +--bcaec54eecc63acce604a3050f77 +Content-Type: text/plain; charset=ISO-8859-1 + +-- +Bill Jncjkq + +--bcaec54eecc63acce604a3050f77 +Content-Type: text/html; charset=ISO-8859-1 + +
--
Bill Jncjkq
+ +--bcaec54eecc63acce604a3050f77-- +--bcaec54eecc63acce904a3050f79 +Content-Type: text/html; charset=US-ASCII; name="bookmarks-really-short.html" +Content-Disposition: attachment; filename="bookmarks-really-short.html" +Content-Transfer-Encoding: base64 +X-Attachment-Id: f_gnknv6u70 + +PCFET0NUWVBFIE5FVFNDQVBFLUJvb2ttYXJrLWZpbGUtMT4KCTxIVE1MPgoJPE1FVEEgSFRUUC1F +UVVJVj0iQ29udGVudC1UeXBlIiBDT05URU5UPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPgoJ +PFRpdGxlPkJvb2ttYXJrczwvVGl0bGU+Cgk8SDE+Qm9va21hcmtzPC9IMT4KCQk8RFQ+PEgzIEZP +TERFRD5UZWNoIE5ld3M8L0gzPgoJCTxETD48cD4KCQkJPERUPjxBIEhSRUY9Imh0dHA6Ly93d3cu +Y25ldC5jb20vIj5DTmV0PC9BPgoJCQk8RFQ+PEEgSFJFRj0iaHR0cDovL3d3dy53aXJlZC5jb20v +Ij5XaXJlZCBOZXdzPC9BPgoJCTwvREw+PHA+CgkJPERUPjxIMyBGT0xERUQ+VG9vbHMgYW5kIFJl +ZmVyZW5jZTwvSDM+CgkJPERMPjxwPgoJCQk8RFQ+PEEgSFJFRj0iaHR0cDovL3d3dy5tb25zdGVy +LmNvbS8iPk1vbnN0ZXIuY29tPC9BPgoJCQk8RFQ+PEEgSFJFRj0iaHR0cDovL3d3dy53ZWJtZC5j +b20vIj5XZWJNRDwvQT4KCQk8L0RMPjxwPgoJCTxEVD48SDMgRk9MREVEPlRyYXZlbDwvSDM+CgkJ +PERMPjxwPgoJCQk8RFQ+PEEgSFJFRj0iaHR0cDovL2ZvZG9ycy5jb20vIj5Gb2RvcnM8L0E+CgkJ +CTxEVD48QSBIUkVGPSJodHRwOi8vd3d3LnRyYXZlbG9jaXR5LmNvbS8iPlRyYXZlbG9jaXR5PC9B +PgoJCTwvREw+PHA+Cgk8L0RMPjxwPgo8L0hUTUw+ +--bcaec54eecc63acce904a3050f79-- diff --git a/test_data/03_spam.eml b/test_data/03_spam.eml new file mode 100644 index 0000000..c45a5ca --- /dev/null +++ b/test_data/03_spam.eml @@ -0,0 +1,146 @@ +Return-Path: <2587-84-162546-580-REMOVED=PERSONALDATA.org@mail.theultimatesurvival.bid> +Delivered-To: REMOVED@PERSONALDATA.org +Received: from localhost (HELO queue) (127.0.0.1) + by localhost with SMTP; 31 Aug 2017 20:13:59 +0200 +Received: from output21.mail.ovh.net (164.132.34.21) + by mail.ovh.net with AES256-GCM-SHA384 encrypted SMTP; 31 Aug 2017 20:13:59 +0200 +Received: from vr8.mail.ovh.net (unknown [10.101.8.8]) + by out21.mail.ovh.net (Postfix) with ESMTP id 037728E969 + for ; Thu, 31 Aug 2017 20:13:59 +0200 (CEST) +Received: from in8.mail.ovh.net (unknown [10.101.4.8]) + by vr8.mail.ovh.net (Postfix) with ESMTP id EC1B43100064 + for ; Thu, 31 Aug 2017 20:13:58 +0200 (CEST) +Received-SPF: None (no SPF record) identity=mailfrom; client-ip=67.212.164.109; helo=papa.theultimatesurvival.bid; envelope-from=2587-84-162546-580-REMOVED=PERSONALDATA.org@mail.theultimatesurvival.bid; receiver=REMOVED@PERSONALDATA.org +Authentication-Results: in8.mail.ovh.net; dkim=fail + reason="verification failed; unprotected key" + header.d=theultimatesurvival.bid header.i=contact@theultimatesurvival.bid + header.b=ptUe0FaL; dkim-adsp=none (unprotected policy); + dkim-atps=neutral +Received: from papa.theultimatesurvival.bid (unknown [67.212.164.109]) + by in8.mail.ovh.net (Postfix) with ESMTP id 90002103C + for ; Thu, 31 Aug 2017 20:13:56 +0200 (CEST) +DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; s=k1; d=theultimatesurvival.bid; + h=Mime-Version:Content-Type:Date:From:Reply-To:Subject:To:Message-ID; i=contact@theultimatesurvival.bid; + bh=+YrbUJPNVh0a6ifdSznLKudl/QM=; + b=ptUe0FaLqrLaHlvcHx3nIO4t22Htjg7Wvv8ePt+3oc+u83sMEHAwNijsw1BUtGN6qzhCWqZd6uud + DCD6GoS/IbgL248Dm2RYZt5qo6AqWryvVVEU6UNlwhf0OC10RgB/+M1JPP+tMj7yUvTESyiduzNn + AdR/HEY1dRczR2SilPk= +DomainKey-Signature: a=rsa-sha1; c=nofws; q=dns; s=k1; d=theultimatesurvival.bid; + b=uEyeIDTw4WgOJfevfusx1a69gu2fgUYGH1fXVgkJTHeAVKSYWgAV2re+Mq0+p40PnOYw9DLtsmv3 + Ok8JvOcBjfSFjM+ZfOUEPxhwn2W8tuaEa2isptYxy3JWTcHrpfskfaDlZZoBLV8B0+GOiagTcqPr + DDDbtZxQ1H7HmGNhvp4=; +Mime-Version: 1.0 +Content-Type: multipart/alternative; boundary="4b2c0d8c2be93cf60574bb430a69dcea" +Date: Thu, 31 Aug 2017 14:12:00 -0400 +From: "The Coolest Multi Tool" +Reply-To: "The EDT Mini-Tool is a powerful tool" +Subject: [SPAM] Did You Get Your Free EDT Yet? +To: +Message-ID: <369a6y74798tq0lu-doo34v1hbhns3e03-27af2@theultimatesurvival.bid> +X-Ovh-Remote: 67.212.164.109 ([67.212.164.109]) +X-Ovh-Tracer-Id: 5901404362377205760 +X-VR-SPAMSTATE: SPAM +X-VR-SPAMSCORE: 300 +X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeelledrudekgdduudehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecufedttdenucfjughrucefledtheculdeftddtmd +X-Ovh-Spam-Status: SPAM +X-Ovh-Spam-Reason: vr: SPAM; dkim: disabled; spf: disabled +X-Ovh-Message-Type: SPAM +X-Spam-Tag: YES + +--4b2c0d8c2be93cf60574bb430a69dcea +Content-Type: text/plain; +Content-Transfer-Encoding: 8bit + +Did You Get Your Free EDT Yet? + +=> http://theultimatesurvival.bid/zfcG0umfLpjPd4H1F-Fq4wNjClvjTJ1xNkCJ8CsxA2yB + +--4b2c0d8c2be93cf60574bb430a69dcea +Content-Type: text/html; +Content-Transfer-Encoding: 8bit + + + + + Untitled Document + + + + + + + + +

+ It's The Coolest Multi Tool You've Ever Seen!
+
+ Dear Survivalist,
+
+ Yesterday I let you in on our newest piece of survival gear, The EDT Mini-Tool...
+
+ Click here to see it in action now...
+
+ We’ve got a special limited first run of these amazing tools and I want you to have one.
+
+ But you have to claim it now, I only have a few of these left and I can’t hold yours for very long.
+
+ See This Ultimate Tool
+
+ Remember this tool is 100% free.
+
+ All I ask is that you give your honest feedback and let me know what you think about it!
+
+ Grab yours today before they’re all gone...
+
+ P.S. If for any reason you don’t want this amazing and free EDT mini multi tool, please forward this message on to someone you think could really use it.
+
+ I’d hate for it to go to waste…
+
+ ← Send Me My Free EDT Mini Tool Now →
+  
+  + +
For Unsub
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + +--4b2c0d8c2be93cf60574bb430a69dcea-- + diff --git a/test_data/sample-4622.eml b/test_data/sample-4622.eml new file mode 100644 index 0000000..a983513 --- /dev/null +++ b/test_data/sample-4622.eml @@ -0,0 +1,939 @@ +Received: from PH0PR02MB9288.namprd02.prod.outlook.com (2603:10b6:510:280::12) + by IA1PR02MB9088.namprd02.prod.outlook.com with HTTPS; Mon, 23 Dec 2024 + 00:27:02 +0000 +Received: from SJ0PR05CA0046.namprd05.prod.outlook.com (2603:10b6:a03:33f::21) + by PH0PR02MB9288.namprd02.prod.outlook.com (2603:10b6:510:280::12) with + Microsoft SMTP Server (version=TLS1_2, + cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8272.17; Mon, 23 Dec + 2024 00:27:00 +0000 +Received: from CO1PEPF000042AB.namprd03.prod.outlook.com + (2603:10b6:a03:33f:cafe::3b) by SJ0PR05CA0046.outlook.office365.com + (2603:10b6:a03:33f::21) with Microsoft SMTP Server (version=TLS1_3, + cipher=TLS_AES_256_GCM_SHA384) id 15.20.8272.13 via Frontend Transport; Mon, + 23 Dec 2024 00:26:59 +0000 +Authentication-Results: spf=pass (sender IP is 209.85.160.198) + smtp.mailfrom=doclist.bounces.google.com; dkim=pass (signature was verified) + header.d=google.com;dmarc=pass action=none + header.from=google.com;compauth=pass reason=100 +Received-SPF: Pass (protection.outlook.com: domain of + doclist.bounces.google.com designates 209.85.160.198 as permitted sender) + receiver=protection.outlook.com; client-ip=209.85.160.198; + helo=mail-qt1-f198.google.com; pr=C +Received: from mail-qt1-f198.google.com (209.85.160.198) by + CO1PEPF000042AB.mail.protection.outlook.com (10.167.243.40) with Microsoft + SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8293.12 + via Frontend Transport; Mon, 23 Dec 2024 00:26:59 +0000 +X-IncomingTopHeaderMarker: + OriginalChecksum:3C932A1EDCD9D1FBF397A40BD6BC8BF0918549F67CAE0148D9D5D29FCA46F345;UpperCasedChecksum:DF96B680266F6CE4CF91AD03A360621989953C71987F35D5E494BFFE9F39AB60;SizeAsReceived:2859;Count:17 +Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-467948b2902so87916111cf.1 + for ; Sun, 22 Dec 2024 16:26:59 -0800 (PST) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=google.com; s=20230601; t=1734913619; x=1735518419; darn=hotmail.com; + h=cc:to:from:subject:date:message-id:references:reply-to:mime-version + :from:to:cc:subject:date:message-id:reply-to; + bh=OXggTleQM4H8+qPzsXwZNUu2wuAGkggWZCEW3vvljwc=; + b=s6k5JGb7ncUoZfc3T6VWQw5GHEqIRTiaO/SG0Qj/9SMWjjNLSser9a4FXy+ytAg7Z3 + T++ZoC5Xc6nrVIRVIYmg3gV2Soa1ZKUOZlMqJXeFXBzDW2EGix/ldXRj9SIZZzei4o2v + mGiChVZmzj4RRul8RBCjlZy4h5AscLUqmj7HrIi03jdXW1XSLX8/SGsrjsrdSqS1YZjJ + wRUw8kM/pf0IVeYW59FahYjesZ+g1e2bHNPNW/Kx6abYlh7ZpC2Gy7+DWWwraijwIuJP + /i9JmcWGknpe1MxXxURUDOdSaDSx0N8b6M10Jx5Q0hwXgkDN0euapIhzpwdkP4sQDtOx + vzKg== +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=1e100.net; s=20230601; t=1734913619; x=1735518419; + h=cc:to:from:subject:date:message-id:references:reply-to:mime-version + :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; + bh=OXggTleQM4H8+qPzsXwZNUu2wuAGkggWZCEW3vvljwc=; + b=NmmupFMBCj673VR5DEKMrxhS4yFLWgCCKi1w9xDnB6x0oTp0szd1k4NPl0Wq5BP1qy + WT1nWV5/k59ei5VvO8v3YYz+UxaRpIJni9RwWkVFiRUKBgzN8rNp/qCmmLg0Fzo14rJH + oQVIg4cJgnUbB2mZYTkqMlzDYaZMBppcQjbI3ssugyCdGqgK+/UmMbwgC4d3+0H7P2w2 + 8Itp1si16KOkIZYsZrX+bZnJ4IUcnISGBOPxL5dFyZeWArJCnS/H1QGYt/69ZD4eOWRc + PQIbgv1VLkKEXcDxEk/GQ5pxjS+6cpFXHi3my0wNrfFjY3IVdGTnJUtR3B4/q/TkI82/ + WiJw== +X-Gm-Message-State: AOJu0Yz7MI+828jIAdCDFTPvbQx3XxzKFC6WR+SB17IWH45tnNGOx1TW + a/ffLtbDv0d4MO2jB7DSKmH2QguH9BmwUbm0AiuZ5auy32vyQbbi2sAlDOX3U869GH0CA6+76dI + 9YCQdrmwxsNR40iMy74vaIKY2 +X-Google-Smtp-Source: AGHT+IGxNgTi2wd1wDQEAKGOuGeS08QaYqnqxGzsxXXQLBfodLfwGBfiSqHlPu7sVUtzEkDPK1XJBsPha4U= +X-Received: by 2002:ac8:5a05:0:b0:456:919a:11e4 with SMTP id + d75a77b69052e-46a4b18903cmr154773321cf.20.1734913618980; Sun, 22 Dec 2024 + 16:26:58 -0800 (PST) +Reply-To: Darla Timon +X-No-Auto-Attachment: 1 +References: +Message-ID: +Date: Mon, 23 Dec 2024 00:26:58 +0000 +Subject: =?UTF-8?Q?=F0=9F=A4=91_Get_Ready_to_Receive_Your_Virtual_Payment=3A_Here?= + =?UTF-8?Q?s_How=21_=F0=9F=93=88?= +From: =?UTF-8?Q?Darla_Timon_=28via_Apresenta=C3=A7=C3=B5es_Google=29?= +To: phishing@pot +Cc: alasadianwar@hotmail.com, alexandre_crosnier@hotmail.com, + giovannianimas@outlook.com, palmanahu@hotmail.com +Content-Type: multipart/mixed; boundary="000000000000f9b8d50629e50d63" +X-IncomingHeaderCount: 17 +Return-Path: + 3Uq5oZxQKAJM0E5I1-F4xE1F-ABE1C8L3BB381.zB9@doclist.bounces.google.com +X-MS-Exchange-Organization-ExpirationStartTime: 23 Dec 2024 00:26:59.7206 + (UTC) +X-MS-Exchange-Organization-ExpirationStartTimeReason: OriginalSubmit +X-MS-Exchange-Organization-ExpirationInterval: 1:00:00:00.0000000 +X-MS-Exchange-Organization-ExpirationIntervalReason: OriginalSubmit +X-MS-Exchange-Organization-Network-Message-Id: + c67f5e78-078d-4783-4017-08dd22e883e7 +X-EOPAttributedMessage: 0 +X-EOPTenantAttributedMessage: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa:0 +X-MS-Exchange-Organization-MessageDirectionality: Incoming +X-MS-PublicTrafficType: Email +X-MS-TrafficTypeDiagnostic: + CO1PEPF000042AB:EE_|PH0PR02MB9288:EE_|IA1PR02MB9088:EE_ +X-MS-Exchange-Organization-AuthSource: + CO1PEPF000042AB.namprd03.prod.outlook.com +X-MS-Exchange-Organization-AuthAs: Anonymous +X-MS-UserLastLogonTime: 12/22/2024 11:14:55 PM +X-MS-Office365-Filtering-Correlation-Id: c67f5e78-078d-4783-4017-08dd22e883e7 +X-MS-Exchange-EOPDirect: true +X-Sender-IP: 209.85.160.198 +X-SID-PRA: DRIVE-SHARES-NOREPLY@GOOGLE.COM +X-SID-Result: PASS +X-MS-Exchange-Organization-SCL: 1 +X-Microsoft-Antispam: + BCL:3;ARA:1444111002|47200799021|58200799018|1680799054|9000799050|9400799030|10300799035|68400799013|2phishing@pot0799006|461199028|20103052909095|1131999016|9020799016|6092099012|1370799030|1360799030|1380799030|1602099012|7002799012|3412199025|4302099013|440099028|6111999015|4141999021|8011999015|21101999018; +X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Dec 2024 00:26:59.6737 + (UTC) +X-MS-Exchange-CrossTenant-Network-Message-Id: c67f5e78-078d-4783-4017-08dd22e883e7 +X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa +X-MS-Exchange-CrossTenant-AuthSource: + CO1PEPF000042AB.namprd03.prod.outlook.com +X-MS-Exchange-CrossTenant-AuthAs: Anonymous +X-MS-Exchange-CrossTenant-FromEntityHeader: Internet +X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: + 00000000-0000-0000-0000-000000000000 +X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR02MB9288 +X-MS-Exchange-Transport-EndToEndLatency: 00:00:02.5253642 +X-MS-Exchange-Processed-By-BccFoldering: 15.20.8272.000 +X-Microsoft-Antispam-Mailbox-Delivery: + wl:1;pcwl:1;ucf:0;jmr:0;ex:0;auth:1;dest:I;OFR:TrustedSenderList;ENG:(5062000308)(920221119095)(90000117)(920221120095)(91040095)(9050020)(9065024)(9100341)(944500132)(4810010)(4910033)(9575002)(10195002)(9414026)(9310011)(9220031)(120001); +X-Message-Delivery: Vj0xLjE7dXM9MDtsPTA7YT0wO0Q9MTtHRD0xO1NDTD0tMQ== +X-Microsoft-Antispam-Message-Info: + =?utf-8?B?NFhHc2plZ004Y0g2YjRVVlZ5Rzhrd0x6Wlo2OStFL3ZKQ2xpTWlJd0t2Wmp3?= + =?utf-8?B?MDN6SlQzRnJJVXJBOWtzME10MFdPdEZUTGUvb2xXaXo3QUEyeXpzMzFGY2xK?= + =?utf-8?B?SFJnVlQ2RjEvcy9WQjRJQklGUzhIM3pTMkp0bTFuUldmbWFxeXRpTlVQUEw1?= + =?utf-8?B?SUdtVjVzTkpUaDhqMlVVMDhOQlArVXYyUmQ1ZDVLMVBuVzVIS2dITkFJVG8v?= + =?utf-8?B?ZGl3T1Z2ZFBmb21BM2llRjQ0anhJbjRnSkpWbXQ5ZjdoTWZ1V0x6cmZxY2s3?= + =?utf-8?B?TFFGNC8zbyt3ZCtzcE5pMG5BQnRBK1ZpckpEODMvTEI3d05Vc3BDbE1qcmMy?= + =?utf-8?B?cUw5YTljTWlvMXlUQ1VYTW9hazlnS2N4a0N6SzlXY1RGZHhVbG05dFc3Rmc2?= + =?utf-8?B?WkQzaUsrVkdienJ1WDErNUxBR0RzcUZtNWpxeUdPNzNhbkNQZzdPZzBRU21Y?= + =?utf-8?B?UkhMVTlhZDY3RXRJMlQvSmlkSHlxN3duYXcvRnJTVSttalEyaXpiNmRreVVn?= + =?utf-8?B?MU45ODVhNXZWcXNZZ3JMZDFsMEo1UDJIVFBZUndocnpFL0JTaG9OU3p4Q3Q0?= + =?utf-8?B?eTcvV25ZOHN4aTg3aSswdTVoU2pUMUtCdFQrelVEbGhZVjlSekpmSHNQQzIw?= + =?utf-8?B?MjQ5K2hUemVMak5OSW9DaVhJd1ZpYVpnOWdEc1BINUY0dHNNeXBGbU4xL00v?= + =?utf-8?B?Qk1Xc2paZUZla0ppbVA5UWc4MFBxSFg5dUVVRWpHcjdnbVVPTXFHWDJEQ1FB?= + =?utf-8?B?Y0NTQ1ZVTFdiR3I5dDRnMWdpL3ZNbDB4NE8zK0dYNzlyaUdZcTd1eVQ5Umhl?= + =?utf-8?B?TVA4aHJWdGFXZWx3dFFzdHRCc2tMVEZyT2dPbjVmOEFHekRRalZuM1huRTV6?= + =?utf-8?B?cnkveVkzNjMyL2dkajhTaGQzVHRiQVloMjgwMjlXNFplT3hEYTdxMk1wa0t5?= + =?utf-8?B?STlwb3JxdFBBbzVxaHluc2xEMmFwOTQxMXM4WktwZTQzZlF3Rm5yVDBycFhF?= + =?utf-8?B?SWNhYllCZkx0RER0TGxJZHpBSzdaMnp1dUgwdGpCV1ZvSzFBVnBmQlpVOTc4?= + =?utf-8?B?TFkwaFNiRXI2OHRmRG5qQVA5UzhaeEpkZmI1KzRYWWdodjdwTWlBWjYvWWFS?= + =?utf-8?B?NVhKczlvdWV5cGRVeW9zRWdaWWFPUWlmQnl0a2RvYXdBL3AyZ3NWVXYxaG5s?= + =?utf-8?B?dnMrZlJ1TEpxUEFObDFMMlUzMXVsbm1lTlZGcW5yWmR1dDZHQ2ZUNkdYY293?= + =?utf-8?B?UnRmNkQ1ZVlQSWQ5R0U5dVVRR1pNWjJKTTNBSUxkMGlsZ3JXZm1SZXNHdmRq?= + =?utf-8?B?N1lBeXpJWi84eG04YkZ1WkVlT1VUaDVCVjZZc0FCckNzWmJaS0NWTWN1YVJB?= + =?utf-8?B?aEJPQmU2Zm5rNUhaU3d2RlgrT0hucm5EeGt4SEhvbDBLa3Foa1NyS01xU0xO?= + =?utf-8?B?UVRHVERjOW5lY2JzRUwrbFFTb1JuaUpqRmh2TEgyR2o1c3hRSUpFVHdZaTky?= + =?utf-8?B?SjljTDk5d0tDdGU0VWZKK1g1eWFId01yNVRFbmZCeHIzeWRZSkFrMDVsVlM2?= + =?utf-8?B?RVR4OW15dWU2d2lQMWtUZVBQaG1ZK3djVGdNUDV1byt0L2NqZ1Z2MTBWREdp?= + =?utf-8?B?MGpLMCtDaDVPaXBqbW56SzFxZ2V1bGh6WEo3YWhrN1BSYS9JaTNDWk1kcWl6?= + =?utf-8?B?Vm9ENTZCc2UxZ3ZTL29ka05ra2NGZUNVYW9FU2J3MHdkQklFd2xqc3R1K055?= + =?utf-8?B?N29LZVlmbDc0S2h3UW9NNXRKN013cHdsK3JnclJuR1laWTl6SzZheWNCMldV?= + =?utf-8?B?bEhIaE4xaGdTeENVUXJKSHVHejhvTHNYWUQzTnQ2QWZpakh2T2NYeGcwODRh?= + =?utf-8?B?NFF3N0U1L0lybkhhZEhEMUppZFpYOWVRbnBrSFlsUk4xUjR3dDBSbFhkUzNj?= + =?utf-8?B?b1ZNZVk1d1BtekN5WGd3NW04NlBVd0ZkTnpCdDBvUnpZNC9WQTNXSjczWC9M?= + =?utf-8?B?UFNDbFk2RE5iMEVNRC85cXB2dXNiamh2a0ZMRWl5V1pWZ2ZvSTZBWFdENS9h?= + =?utf-8?B?eE9YYm8rSlNYb2Z5V1gycmlnc1RObWFtemw0eWlwakZZaWpvZG9CZVY2THFs?= + =?utf-8?B?ZTlITVV5Qzd1TGFsV1lJWWJZUUNmTmpJVHdBSzhOWkI1ekFiQTBBcjVpVXBK?= + =?utf-8?B?bmV0cGVUNjJNTW5QTC91ODVlcU1tdmQrbm1qNzV2RHB2clphM2laaDJTS3NZ?= + =?utf-8?B?UzduZ3R4ZFU2amIrU3N4NCtvdVVWTzhwTndkYkwwY0Rqc1MwVFhnajUrb3pB?= + =?utf-8?B?L2wzSFhYNUthZmZoc3VvT2Nac1RmQzZaYVBwUlBxQ3dOcjdCZ2hVaW12WVE0?= + =?utf-8?B?dng2T2R3bndsQUc3MU9talR6N2dJRUFvZmpYeElWdDRNKzJqZ0F2ZFZKeVls?= + =?utf-8?B?Vmx3WmhFSTJaU05teFNZSS9kR2VZbkdDcVhscXU4MVFuTERCQlVEZUVpMnFZ?= + =?utf-8?B?MG12VCtMWGdIM25BOXgycVNwbnBpSVcxeU9mSDVFcmxzaEN6aWJaSEJKUzMv?= + =?utf-8?B?c1Z0OGNXK3JDMXAzZldtU3N5VCtrNng3cDJUa0ZrRGlDczhYTTZYcTZ3VGdi?= + =?utf-8?B?d20rcjl0TmN4RmxPbEpWYTIrNXFrR0lQazBYbnNuc0ZTUDdEUUdQOUo1d1RI?= + =?utf-8?B?UG5sb09uQnRiOU9VaThERjBWcGZkZjd0TWFtc1pObEdVeWVPeGg5TTZON0tq?= + =?utf-8?B?VERPOSt3ek5Zc2o2MlEzV2xYLzFUa0gvcGxFMEUrZ0MzTmJ6bWpYeFVwdU1t?= + =?utf-8?B?M0x1UXQ1VE9WbTdvSnMyTFVpbU9MaDV3SzNlYzN5cTJVL3h4UlE4T2ZQRUFT?= + =?utf-8?B?bE1sTkUzY0RJanFocTVOUC9iUUtmbnYxM2IwYThrT1ZSUjFOcklPZVRwR1dL?= + =?utf-8?B?OEIrdVIva1YrWnFyZWZMZWFoWjFiV1pXY0NjeDlrb2dYWW9ZNkVMTGtjdmk3?= + =?utf-8?B?endhaDRCdTlKaVhHN3BEbzhrakNhU05GWDI5dkh2Nnh0UGNCVUMxREtVOGxT?= + =?utf-8?Q?GcicFZL2efbhA/b90WoOBGAqJxVf9RrMg=3D?= +MIME-Version: 1.0 + +--000000000000f9b8d50629e50d63 +Content-Type: multipart/alternative; boundary="000000000000f9b8d30629e50d61" + +--000000000000f9b8d30629e50d61 +Content-Type: text/plain; charset="UTF-8"; format=flowed; delsp=yes +Content-Transfer-Encoding: base64 + +QW5leGFkb3M6IE9wZW4gODM2OC5wZGYNCkVudmlhZG8gcGVsbyBEb2N1bWVudG9zIEdvb2dsZSBo +dHRwczovL2RvY3MuZ29vZ2xlLmNvbS8NCg0KSW0gc28gZ2xhZCB0byBoZWFyIHRoYXQgdGhlIGlz +c3VlIGhhcyBiZWVuIGFkZHJlc3NlZCBhbmQgeW91dmUgcmVjZWl2ZWQgIA0KeW91ciByZWltYnVy +c2VtZW50ISDwn46JIEl0cyBhbHdheXMgcmVhc3N1cmluZyB3aGVuIHByb2JsZW1zIGFyZSByZXNv +bHZlZCAgDQpwcm9tcHRseSBhbmQgZmFpcmx5LiDwn5SEIEhvcGVmdWxseSwgdGhpcyBleHBlcmll +bmNlIGhhc250IGRhbXBlbmVkIHlvdXIgIA0Kb3ZlcmFsbCBzYXRpc2ZhY3Rpb24sIGFuZCB5b3Ug +Y2FuIGNvbnRpbnVlIGVuam95aW5nIHRoZSBzZXJ2aWNlcyBvciAgDQpwcm9kdWN0cyB3aXRoIHBl +YWNlIG9mIG1pbmQuIPCfjJ8gSWYgeW91IGhhdmUgYW55IG1vcmUgcXVlc3Rpb25zIG9yIG5lZWQg +IA0KZnVydGhlciBhc3Npc3RhbmNlIGluIHRoZSBmdXR1cmUsIGRvbnQgaGVzaXRhdGUgdG8gYXNr +LiDwn5mL4oCN4pmC77iPIFRha2UgY2FyZSEg8J+MvA0KDQoNCiAgIA0KaHR0cHM6Ly9kb2NzLmdv +b2dsZS5jb20vZHJhd2luZ3MvZC8xMWxPZnNZZkJZMWxpX0VXNllaaE9xRjNnV21EclJveVFMQmFh +RWNHeldlcy9wcmV2aWV3DQoNCg0KDQogIGNhbWVscyB3ZXJlIGxhZGVuLiBUaGUgS2FiYWJpc2gs +IHdobyBoYWQgYWNjb21wYW5pZWQgbWUgZnJvbSBLaGFydG91bSwgIA0KcmVwZWxsaW5nIHRoZSBj +aGFyZ2Ugb2YgZW52eSwgaGUgcmVtYXJrZWQsIHRoYXQgc28gbm90b3Jpb3VzIGEgZm9vbCBhcyAg +DQpnaG91bHMgdG8gZGlnIHVwIGNhcmNvcnBzZXMgcmlnaHQgdW5kZXIgc2VudHJpZXMgbm9zZXMg +YW5kIHdoaXNrIHRoZW0gIA0KYmV0dGVyIHdlYXBvbnN5b3UgYm90aCBrbm93IG1lIHRoYXQgd2Vs +bCwgYnV0IEkgZ3Vlc3MgSSBoYXRlIHdoYXQgdGhlDQo= +--000000000000f9b8d30629e50d61 +Content-Type: text/html; charset="UTF-8" +Content-Transfer-Encoding: quoted-printable + + +
Darla Timon anexou uma apresent= +a=C3=A7=C3=A3o
3D"Foto
Darla Timon (rosipettiwayzncze@lnozdnnzl.zeqifeku.quest) anexou a seguinte a= +presenta=C3=A7=C3=A3o:
I= +m so glad to hear that the issue has been addressed and youve received your= + reimbursement! =F0=9F=8E=89 Its always reassuring when problems are resolv= +ed promptly and fairly. =F0=9F=94=84 Hopefully, this experience hasnt dampe= +ned your overall satisfaction, and you can continue enjoying the services o= +r products with peace of mind. =F0=9F=8C=9F If you have any more questions = +or need further assistance in the future, dont hesitate to ask. =F0=9F=99= +=8B=E2=80=8D=E2=99=82=EF=B8=8F Take care! =F0=9F=8C=BC


https:/= +/docs.google.com/drawings/d/11lOfsYfBY1li_EW6YZhOqF3gWmDrRoyQLBaaEcGzWes/pr= +eview



camels were laden. The Kababish, who had accompanied= + me from Khartoum, repelling the charge of envy, he remarked, that so notor= +ious a fool as ghouls to dig up carcorpses right under sentries noses and w= +hisk them better weaponsyou both know me that well, but I guess I hate what= + the
Open 8368
Google LLC, 1600 Amphitheatre= + Parkway, Mountain View, CA 94043, USA
Voc=C3=AA recebeu este e-mail po= +rque rosipettiwayzncze@lnozdnnzl.zeqifeku.q= +uest compartilhou com voc=C3=AA um arquivo do Google Apresenta=C3=A7=C3= +=B5es.
3D"Googl=
= + +--000000000000f9b8d30629e50d61-- + +--000000000000f9b8d50629e50d63 +Content-Type: application/pdf; name="Open 8368.pdf" +Content-Disposition: attachment; filename="Open 8368.pdf" +Content-Transfer-Encoding: base64 + +JVBERi0xLjQKJSDi48/TCjMKMApvYmoKPDwKL1R5cGUKL0NhdGFsb2cKL05hbWVzCjw8Cj4+Ci9Q +YWdlTGFiZWxzCjw8Ci9OdW1zClsKMAo8PAovUwovRAovU3QKMQo+PgpdCj4+Ci9PdXRsaW5lcwoy +CjAKUgovUGFnZXMKMQowClIKPj4KZW5kb2JqCjQKMApvYmoKPDwKL0NyZWF0b3IKKP7/AEcAbwBv +AGcAbABlKQovVGl0bGUKKP7/AE8AcABlAG4AIAA4ADMANgA4KQo+PgplbmRvYmoKNQowCm9iago8 +PAovVHlwZQovUGFnZQovUGFyZW50CjEKMApSCi9NZWRpYUJveApbCjAKMAo3MjAKNDA1Cl0KL0Nv +bnRlbnRzCjYKMApSCi9SZXNvdXJjZXMKNwowClIKL0Fubm90cwo5CjAKUgovR3JvdXAKPDwKL1MK +L1RyYW5zcGFyZW5jeQovQ1MKL0RldmljZVJHQgo+Pgo+PgplbmRvYmoKNgowCm9iago8PAovRmls +dGVyCi9GbGF0ZURlY29kZQovTGVuZ3RoCjgKMApSCj4+CnN0cmVhbQp4nMVY32/bNhBm4Te+BPsf +uixpO4UUKZHa2wbHPxKtimVZclLvodjWBIXSLl3/f/TuSMmO7G2AJWAR4iOp41H87r47Sk9cBoLj +9aNraBGB/P2RP3ERCCGT2EZCk0a3D0ooHrmKIxMLml5vO6GIjMZGzTsd/H3gFf8Ei+B18XP918N7 +we//duvwL/dHWX7gH17xBV3/g2FjRRBxaYVRSeDW0MnzsXo7pmxolaQx0x14tpyyjYe2LXJP00EZ +BkLbKIoV10YHyorIeh82T/dLAbL4wi8mnz99lVzqIMY/w4sPz0MAnzNUgbC8cP4t/uBnbATXmC3Y +FGTJrtkM5IRGFixnFfTWdHfGVnC/anUv2WYD4g6mjEntjqUsA7US2pU3VMFoToZTmuyMnHht1MrB +fEWPMGJLuI/LbjbnvPjIL4sjNqkTHUSxkXp/q8cbReS0HNRclDw39w5c8Zq9ZJIF7DvA4qdzrgzo +nQEyY8D1xLtlSS1ELiWkEVGH+QSwXAF6S5ALGEO93I/noDHbcTSiPYXRKbsiCyOai37Kz/lvvLg6 +Enx4ZJNEam93PcEyZlBzSdQlAeK5ovjN4HcBqIzYLWCSQXQu4e6a4rQkXEtCO2fznTgvKXIrmHvj +W1us33gfLCj+3VjVsqaxsPTcAL0ewR/rQAP8exvsh5eUw1JJqi6XCE4HD0KyAnBuoZdRQnEBi6DP +Qa7a3vfQXpNLUuilfu419VErI9CvKFflBLdLPdtsl5O70O4MEhKSCVft5YAQCBDaA1vsCZkellEy +7lJqB0CXWVyyR6c0Mb0LXhO3eA/dsW7z0CXIOeWTWYchjgXb2Tc+J2XQymk9ZMqqX/43Ngi1UuGB +LfaEzA7LqlDs1WIBYDjwMRWNXIUdE8opYLVm76D90RMhJYSxVkifnUZUpm8J5dJruiLufIE+uQLN +mTd/De0bsrTwczEPrXyWAtnDDXDyiRNh4wPb7AlbOCyzQtVlFjNUDXJKCU2kunp5R0gVgFsKkfqW +GFG2EY5ITtv67BDPfA1ARFNiT9melTJfGRoerMiPoNkDd60DEVp7YFs9YYqGZVNoBmZT0g2zFwj8 +KQvZBfzHcG3OgCk/oHgD4iU2RqAkyCtENed0qBIvpnDjlKqGO9JOmrJOVk925fHPreCsKpQO9YGn +74eGksOSRIXDRpPSe+UHCw2+DrylclJR2sPj7hp+Mcm9Jl9k9NqAyc6lRKRZRZU7hcRXU/tXkDWd +C2b+iFWDdk3UvaZChUlvDSuVPat9GAdSGWDb/n564hMPyw5lB34ZEnsnuFNKZDd0jJ1QQiuo1Ix8 +QZnTHZfqMvKuovNbSV44Ae+l/vWvOUBP24ODK0s5FbMFWV/18JqIgygS1hzYRd9XxGFZgq9Tg9qL +ho0qbf4pqv7jE8e/fWxRwlhwEDcygaNchF9blE5gpe1QvR2Cc7aEXdGYn7gz1H5ueRrYbPWKPnEp +oaU1DSxRIvFFdX8G7Phi/vj+/s+Qjz97bPD6Bl2rblgKZW5kc3RyZWFtCmVuZG9iago4CjAKb2Jq +CjExMzEKZW5kb2JqCjkKMApvYmoKWwo8PAovVHlwZQovQW5ub3QKL1N1YnR5cGUKL0xpbmsKL1Jl +Y3QKWwo2MC42MDMzNDgKMTQ2LjgxOTg5CjY1OS4zOTY2NwoyNjMuMzEwMDMKXQovQm9yZGVyClsK +MAowCjAKXQovQQo8PAovVHlwZQovQWN0aW9uCi9TCi9VUkkKL1VSSQooaHR0cHM6Ly93d3cuZ29v +Z2xlLmNvbS91cmw/cT1odHRwczovL29mZnNpdGVmb3Jtcy5zdG9yZS8xd3E0Vzgmc2E9RCZzb3Vy +Y2U9ZWRpdG9ycyZ1c3Q9MTczNDkxNzIxODgxOTczNCZ1c2c9QU92VmF3MDA5c1RaMjVTME9DOUlI +VmljckFITCkKPj4KPj4KXQplbmRvYmoKMTAKMApvYmoKPDwKL0NBCjAKL2NhCjAKPj4KZW5kb2Jq +CjEyCjAKb2JqCjw8Ci9TdWJ0eXBlCi9JbWFnZQovSW50ZXJwb2xhdGUKdHJ1ZQovV2lkdGgKNDc4 +Ci9IZWlnaHQKODcKL0NvbG9yU3BhY2UKL0RldmljZVJHQgovQml0c1BlckNvbXBvbmVudAo4Ci9G +aWx0ZXIKL0RDVERlY29kZQovTGVuZ3RoCjEzCjAKUgo+PgpzdHJlYW0K/9j/4AAQSkZJRgABAgAA +AQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwg +IyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgo +KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCABXAd4DASIAAhEBAxEB/8QAHwAAAQUB +AQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEG +E1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW +V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLD +xMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAA +AAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKR +obHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp +anN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU +1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD0zxLr8+tXcoErrYKxWKJWIVlB ++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 +THuDw31yPxrUvPi5aiI/YdD1CSbsJ5Io0/NWY/pTcoTfNzWOitiMFj6kcT9YcF1jdq/4/lc5rxz4 +fvtCt7Uapr93fR3EwWKCW8nfeyjdnYzEYGBye+K5jdT9a1a/17Vm1LV5UafbsiijyI4E/urnqT3J +5NVd1c9Rpy0PlMzq0q1dug24ra7b/Mn3VU1I5gX/AHv6GpN1V745iH+9WZwwXvII2/dr9BTt1Qgl +RtPBHBFG6g1cSbdRuqHdRuoDlJt1G6od1G6gOUm3Ubqh3UbqA5SbdRuqHdRuoDlJt1G6od1G6gOU +m3Ubqh3UbqA5SbdRuqHdRuoDlJt1G6od1G6gOUm3Ubqh3UbqA5SbdRuqHdRuoDlJt1G6od1G6gOU +m3Ubqh3UbqA5SbdRuqHdRuoDlJt1G6od1G6gOUm3Ubqh3UbqA5SbdRuqHdRuoDlJt1G6od1G6gOU +m3Ubqh3UbqA5SbdRuqHdRuoDlJt1G6od1G6gOUm3Ubqh3UbqA5SbdRuqHdRuoDlJt1G6od1G6gOU +m3Ubqh3UbqA5SbdRuqHdRuoDlJt1G6od1G6gOUm3Ubqh3UbqA5SbdRuqHdRuoDlJt1Q3RzGPrRup +GV5RtRSx64FA4x1O++I3ga606+udS01Vk06VjIy7gGhJOSMHqM9MV54WwSD1FFFb14KMtD6DPcHS +w2I/d6c2v/DCbqN1FFYHiWDdRuoooCwbqN1FFAWDdRuoooCwbqN1FFAWDdRuoooCwbqN1FFAWDdR +uoooCwbqN1FFAWDdRuoooCwbqN1FFAWDdRuoooCwbqN1FFAWDdRuoooCwbqN1FFAWDdRuoooCwbq +N1FFAWDdRuoooCwbqN1FFAWDdRuoooCwbqN1FFAWDdRuoooCwbqN1FFAWDdRuoooCwbqN1FFAWDd +RuoooCwbqN1FFAWDdRuoooCxJBHJcSrHEu524AzivZvht4DbTklvtdjjeeZNkdvkMEXIOSRxk4HT +oPrwUV04eCbuz6bhzBUq05VZq7jt2P/ZCmVuZHN0cmVhbQplbmRvYmoKMTMKMApvYmoKODcwMwpl +bmRvYmoKNwowCm9iago8PAovRm9udAo8PAovRm9udDEKMTEKMApSCj4+Ci9QYXR0ZXJuCjw8Cj4+ +Ci9YT2JqZWN0Cjw8Ci9JbWFnZTIKMTIKMApSCj4+Ci9FeHRHU3RhdGUKPDwKL0FscGhhMAoxMAow +ClIKPj4KL1Byb2NTZXQKWwovUERGCi9UZXh0Ci9JbWFnZUIKL0ltYWdlQwovSW1hZ2VJCl0KPj4K +ZW5kb2JqCjExCjAKb2JqCjw8Ci9UeXBlCi9Gb250Ci9TdWJ0eXBlCi9UeXBlMAovQmFzZUZvbnQK +L01VRlVaWStBcmlhbE1UCi9FbmNvZGluZwovSWRlbnRpdHktSAovRGVzY2VuZGFudEZvbnRzClsK +MTQKMApSCl0KL1RvVW5pY29kZQoxNQowClIKPj4KZW5kb2JqCjE1CjAKb2JqCjw8Ci9GaWx0ZXIK +L0ZsYXRlRGVjb2RlCi9MZW5ndGgKMTgKMApSCj4+CnN0cmVhbQp4nH1Sy26DMBC8+yt8TA8RGByS +A7IUparEoQ+V9gPAXlKkYizjHPj7mt0mTVOplsCe3Z3xyLvJobqvbB948uJHXUPgXW+Nh2k8eQ28 +hWNvmci46XX4RvjXQ+NYEsn1PAUYKtuNrCx58hqTU/AzX+3N2MIdS569Ad/bI1+9H+qI65NznzCA +DTxlSnEDXRR6bNxTMwBPkLauTMz3YV5Hzk/F2+yAZ4gFmdGjgck1Gnxjj8DKNC7Fy4e4FANrbvIp +sdqOYCw4H/NzRn80HnXyqJOmWaoQdYQ0IiEIgSIJ5Mjf2kteUtkONymQm7VnJQzuKAiIcrpTthjM +Cwpucdvk6tqvuPWbN1S2vfYk/niS5GlD1xdC/fsIBYkCPUJBJJALEnLxlW3S7PrC5cmXybj0U5+8 +j63E8cEeLt3rLVwmzI1uYeH3Bc1kwqYKZW5kc3RyZWFtCmVuZG9iagoxNwowCm9iago8PAovRmls +dGVyCi9GbGF0ZURlY29kZQovTGVuZ3RoCjE5CjAKUgo+PgpzdHJlYW0KeJzcvXl8VcX1AD4zd9/e +u29fk7zk5SUhLxjIAgSjubIjsq9BUoMssoiyiaiooSogoqKtCNoqLlXcSoCAAW1NrdVapWDrUm1V +WnEXpTalCuS935m574aA9tt+v5/f759fHjNzZu6duTNnzjlzzpm5F4QRQgpqQRwyZ61Ynngg/tbn +UPIThMRJcxdfsujVqxrvAfgohMsuufSquZf9as3HCBnNCDX2mTdn5uxD/he/QGjuRqjTbx4UeKuD +RZD/LeSL5y1avvKi2pNTIA/31M6+9PJZM/nbyn4AzY+D/LxFM1cu9rYZLQi91g73JxYvnbM49ebo +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 +hphishing@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 +xbMrtlWFa4rqJ4QnFGdcWFTZMKVsTN4Jaa1uS2tMWScXK+OLjeG0puR1cjiPD0/htPI4rTxOa0p4 +ikiLRB0vq9jmpcLKyVVSNug94lFfFwwYWFmYknj5JFF5JwxMXTmgCdbKY9QjuzJ6RkZhNAHwoeEF +wwv4EN4pPtQT0T51KHXlhIEDmrTH1KFERCdlFFL28itrr6TU4iVF8l8t/hC1/EoucLnNru3qD8eK +o+ELi2qXE5VGh5WXRvNnzavY5vEgdgHfUnS8HdejR3GjtUtGjkDkeI40jDZFjpvIcXFxSvHk53+l +kuI3fyP6zgYtnK4tp9pKI5peOltHUzB7Hu61al5FE2wp7h5qK3GDtVq2VmtfQ2Vb/l46C75nm+VX +qj1VFsuVlGfilFq7SNr+uLCy20psOS5I/w2aCO/kCmVuZHN0cmVhbQplbmRvYmoKMTQKMApvYmoK +PDwKL1R5cGUKL0ZvbnQKL1N1YnR5cGUKL0NJREZvbnRUeXBlMgovQmFzZUZvbnQKL01VRlVaWStB +cmlhbE1UCi9DSURTeXN0ZW1JbmZvCjw8Ci9SZWdpc3RyeQooQWRvYmUpCi9PcmRlcmluZwooVUNT +KQovU3VwcGxlbWVudAowCj4+Ci9Gb250RGVzY3JpcHRvcgoxNgowClIKL0NJRFRvR0lETWFwCi9J +ZGVudGl0eQovRFcKNTU2Ci9XClsKMApbCjc1MAowCjAKMjc3Cl0KNAoxNAowCjE1ClsKMjc3CjAK +Mjc3Cl0KMTgKMzUKMAozNgozNwo2NjYKMzgKMzkKNzIyCjQwClsKNjY2CjAKMAo3MjIKMjc3CjAK +NjY2CjU1Ngo4MzMKNzIyCjc3Nwo2NjYKMAowCjY2Ngo2MTAKMAowCjk0MwpdCjU5CjY2CjAKNjcK +WwozMzMKNTU2CjU1Ngo1MDAKNTU2CjU1NgoyNzcKNTU2CjU1NgoyMjIKMjIyCjUwMAoyMjIKODMz +Cl0KODEKODQKNTU2Cjg1ClsKMzMzCjUwMAoyNzcKNTU2CjUwMAo3MjIKNTAwCjUwMApdCjkzCjEw +NQowCjEwNgpbCjU1NgowCjU1NgpdCjEwOQoxNDEKMAoxNDIKWwozMzMKXQoxNDMKMzI2CjAKMzI3 +ClsKNjI1Cl0KXQo+PgplbmRvYmoKMTYKMApvYmoKPDwKL1R5cGUKL0ZvbnREZXNjcmlwdG9yCi9G +b250TmFtZQovTVVGVVpZK0FyaWFsTVQKL0ZsYWdzCjQKL0ZvbnRCQm94ClsKLTY2NAotMzI0CjIw +MDAKMTAwNQpdCi9Bc2NlbnQKNzI4Ci9EZXNjZW50Ci0yMTAKL0l0YWxpY0FuZ2xlCjAKL0NhcEhl +aWdodAo3MTYKL1N0ZW1WCjgwCi9Gb250RmlsZTIKMTcKMApSCj4+CmVuZG9iagoxOAowCm9iagoz +MjcKZW5kb2JqCjE5CjAKb2JqCjI0NzI2CmVuZG9iagoxCjAKb2JqCjw8Ci9UeXBlCi9QYWdlcwov +S2lkcwpbCjUKMApSCl0KL0NvdW50CjEKPj4KZW5kb2JqCnhyZWYKMCAyMAowMDAwMDAwMDAyIDY1 +NTM1IGYgCjAwMDAwMzcxMzkgMDAwMDAgbiAKMDAwMDAwMDAwMCAwMDAwMCBmIAowMDAwMDAwMDE2 +IDAwMDAwIG4gCjAwMDAwMDAxNDIgMDAwMDAgbiAKMDAwMDAwMDIxOSAwMDAwMCBuIAowMDAwMDAw +Mzg0IDAwMDAwIG4gCjAwMDAwMTA4MzYgMDAwMDAgbiAKMDAwMDAwMTU4OSAwMDAwMCBuIAowMDAw +MDAxNjA5IDAwMDAwIG4gCjAwMDAwMDE5MDUgMDAwMDAgbiAKMDAwMDAxMTAwOCAwMDAwMCBuIAow +MDAwMDAxOTM5IDAwMDAwIG4gCjAwMDAwMTA4MTUgMDAwMDAgbiAKMDAwMDAzNjM1NyAwMDAwMCBu +IAowMDAwMDExMTUyIDAwMDAwIG4gCjAwMDAwMzY5MDAgMDAwMDAgbiAKMDAwMDAxMTU1NSAwMDAw +MCBuIAowMDAwMDM3MDk3IDAwMDAwIG4gCjAwMDAwMzcxMTcgMDAwMDAgbiAKdHJhaWxlcgo8PAov +U2l6ZQoyMAovUm9vdAozCjAKUgovSW5mbwo0CjAKUgo+PgpzdGFydHhyZWYKMzcxOTgKJSVFT0YK + +--000000000000f9b8d50629e50d63-- From 82a375a3f7c2d893d430b3b74699324a831e7914 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB?= Date: Fri, 25 Apr 2025 22:11:08 +0300 Subject: [PATCH 2/2] Improve testing script --- Makefile | 7 ++++--- test.sh | 18 ++++++++++-------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index 9299dfd..3594b6f 100644 --- a/Makefile +++ b/Makefile @@ -85,11 +85,12 @@ install: ${OBJ} ffget_test: ffget_mmap_test.c ffget_mmap.[ch] logger.o ffget_mmap.o ${CC} ${CFLAGS} ffget_mmap_test.c logger.o ffget_mmap.o -o ffgt - clean: rm -f *.o *core ${OBJ} buildcodes.h rm -f tnef/*.o rm -f ripOLE/*.o ripOLE/ripole -MIMEH: MIME_headers.o strlower.o - ${CC} ${CFLAGS} MIMEH_test.c MIME_headers.o strlower.o -o MIMEH_test +MIMEH: MIME_headers.o strstack.o + ${CC} ${CFLAGS} MIMEH_test.c MIME_headers.o strstack.o -o MIMEH_test + +check: @./test.sh diff --git a/test.sh b/test.sh index f54497d..ea75360 100755 --- a/test.sh +++ b/test.sh @@ -2,29 +2,31 @@ d=$(dirname "$0"); d=$(readlink -f "$d"); tmpdir='/tmp'; -make clean; -make; +#make clean > /dev/null; +#make; [ ! -f "$d/ripmime" ] && exit; [ -d "$tmpdir/ripmime" ] && rm -r "$tmpdir/ripmime"; mkdir "$tmpdir/ripmime"; tmpdir="$tmpdir/ripmime"; -err=0 +err=0; ls -1 "$d/test_data" | while read t; do dt="$tmpdir/$t"; - mkdir "$dt" "${dt}_res" -q; + mkdir "$dt" "${dt}_res"; cd "$dt"; "$d/ripmime" -i "$d/test_data/$t" -d "$dt" -v > "${dt}_res/output0"; + echo ---- $t ----; + cat "${dt}_res/output0"; + echo; ls -1 "$dt" | while read t1; do sha512sum "$dt/$t1" >> "${dt}_res/sha512sum"; done; diff "$d/expected/${t}_res/output0" "${dt}_res/output0"; od=$?; - [ $od != 0 ] && err=$(($err +1)); + [ "$od" != "0" ] && err=$(($err + 1)); diff "$d/expected/${t}_res/sha512sum" "${dt}_res/sha512sum"; sd=$?; - [ $sd != 0 ] && err=$(($err +1)); + [ "$sd" != "0" ] && err=$(($err + 1)); done; -[ $err == 0 ] && echo "no errors"; -[ $err != 0 ] && echo "THERE WAS $err ERRORS"; + [ "$err" != "0" ] && echo "no errors" || echo "THERE WAS $err ERRORS";