├── GPLv3.txt
├── README.md
└── modules
└── addons
└── oath
├── GoogleAuthenticator.php
├── clientareaoath.tpl
├── hooks.php
├── lang
├── bulgarian.php
├── chinese.php
├── english.php
├── german.php
├── persian.php
├── portuguese-br.php
├── portuguese-pt.php
└── romanian.php
├── oath.php
└── phpqrcode
├── bindings
└── tcpdf
│ └── qrcode.php
├── cache
├── frame_1.dat
├── frame_1.png
├── frame_10.dat
├── frame_10.png
├── frame_11.dat
├── frame_11.png
├── frame_12.dat
├── frame_12.png
├── frame_13.dat
├── frame_13.png
├── frame_14.dat
├── frame_14.png
├── frame_15.dat
├── frame_15.png
├── frame_16.dat
├── frame_16.png
├── frame_17.dat
├── frame_17.png
├── frame_18.dat
├── frame_18.png
├── frame_19.dat
├── frame_19.png
├── frame_2.dat
├── frame_2.png
├── frame_20.dat
├── frame_20.png
├── frame_21.dat
├── frame_21.png
├── frame_22.dat
├── frame_22.png
├── frame_23.dat
├── frame_23.png
├── frame_24.dat
├── frame_24.png
├── frame_25.dat
├── frame_25.png
├── frame_26.dat
├── frame_26.png
├── frame_27.dat
├── frame_27.png
├── frame_28.dat
├── frame_28.png
├── frame_29.dat
├── frame_29.png
├── frame_3.dat
├── frame_3.png
├── frame_30.dat
├── frame_30.png
├── frame_31.dat
├── frame_31.png
├── frame_32.dat
├── frame_32.png
├── frame_33.dat
├── frame_33.png
├── frame_34.dat
├── frame_34.png
├── frame_35.dat
├── frame_35.png
├── frame_36.dat
├── frame_36.png
├── frame_37.dat
├── frame_37.png
├── frame_38.dat
├── frame_38.png
├── frame_39.dat
├── frame_39.png
├── frame_4.dat
├── frame_4.png
├── frame_40.dat
├── frame_40.png
├── frame_5.dat
├── frame_5.png
├── frame_6.dat
├── frame_6.png
├── frame_7.dat
├── frame_7.png
├── frame_8.dat
├── frame_8.png
├── frame_9.dat
├── frame_9.png
├── mask_0
│ ├── mask_101_0.dat
│ ├── mask_105_0.dat
│ ├── mask_109_0.dat
│ ├── mask_113_0.dat
│ ├── mask_117_0.dat
│ ├── mask_121_0.dat
│ ├── mask_125_0.dat
│ ├── mask_129_0.dat
│ ├── mask_133_0.dat
│ ├── mask_137_0.dat
│ ├── mask_141_0.dat
│ ├── mask_145_0.dat
│ ├── mask_149_0.dat
│ ├── mask_153_0.dat
│ ├── mask_157_0.dat
│ ├── mask_161_0.dat
│ ├── mask_165_0.dat
│ ├── mask_169_0.dat
│ ├── mask_173_0.dat
│ ├── mask_177_0.dat
│ ├── mask_21_0.dat
│ ├── mask_25_0.dat
│ ├── mask_29_0.dat
│ ├── mask_33_0.dat
│ ├── mask_37_0.dat
│ ├── mask_41_0.dat
│ ├── mask_45_0.dat
│ ├── mask_49_0.dat
│ ├── mask_53_0.dat
│ ├── mask_57_0.dat
│ ├── mask_61_0.dat
│ ├── mask_65_0.dat
│ ├── mask_69_0.dat
│ ├── mask_73_0.dat
│ ├── mask_77_0.dat
│ ├── mask_81_0.dat
│ ├── mask_85_0.dat
│ ├── mask_89_0.dat
│ ├── mask_93_0.dat
│ └── mask_97_0.dat
├── mask_1
│ ├── mask_101_1.dat
│ ├── mask_105_1.dat
│ ├── mask_109_1.dat
│ ├── mask_113_1.dat
│ ├── mask_117_1.dat
│ ├── mask_121_1.dat
│ ├── mask_125_1.dat
│ ├── mask_129_1.dat
│ ├── mask_133_1.dat
│ ├── mask_137_1.dat
│ ├── mask_141_1.dat
│ ├── mask_145_1.dat
│ ├── mask_149_1.dat
│ ├── mask_153_1.dat
│ ├── mask_157_1.dat
│ ├── mask_161_1.dat
│ ├── mask_165_1.dat
│ ├── mask_169_1.dat
│ ├── mask_173_1.dat
│ ├── mask_177_1.dat
│ ├── mask_21_1.dat
│ ├── mask_25_1.dat
│ ├── mask_29_1.dat
│ ├── mask_33_1.dat
│ ├── mask_37_1.dat
│ ├── mask_41_1.dat
│ ├── mask_45_1.dat
│ ├── mask_49_1.dat
│ ├── mask_53_1.dat
│ ├── mask_57_1.dat
│ ├── mask_61_1.dat
│ ├── mask_65_1.dat
│ ├── mask_69_1.dat
│ ├── mask_73_1.dat
│ ├── mask_77_1.dat
│ ├── mask_81_1.dat
│ ├── mask_85_1.dat
│ ├── mask_89_1.dat
│ ├── mask_93_1.dat
│ └── mask_97_1.dat
├── mask_2
│ ├── mask_101_2.dat
│ ├── mask_105_2.dat
│ ├── mask_109_2.dat
│ ├── mask_113_2.dat
│ ├── mask_117_2.dat
│ ├── mask_121_2.dat
│ ├── mask_125_2.dat
│ ├── mask_129_2.dat
│ ├── mask_133_2.dat
│ ├── mask_137_2.dat
│ ├── mask_141_2.dat
│ ├── mask_145_2.dat
│ ├── mask_149_2.dat
│ ├── mask_153_2.dat
│ ├── mask_157_2.dat
│ ├── mask_161_2.dat
│ ├── mask_165_2.dat
│ ├── mask_169_2.dat
│ ├── mask_173_2.dat
│ ├── mask_177_2.dat
│ ├── mask_21_2.dat
│ ├── mask_25_2.dat
│ ├── mask_29_2.dat
│ ├── mask_33_2.dat
│ ├── mask_37_2.dat
│ ├── mask_41_2.dat
│ ├── mask_45_2.dat
│ ├── mask_49_2.dat
│ ├── mask_53_2.dat
│ ├── mask_57_2.dat
│ ├── mask_61_2.dat
│ ├── mask_65_2.dat
│ ├── mask_69_2.dat
│ ├── mask_73_2.dat
│ ├── mask_77_2.dat
│ ├── mask_81_2.dat
│ ├── mask_85_2.dat
│ ├── mask_89_2.dat
│ ├── mask_93_2.dat
│ └── mask_97_2.dat
├── mask_3
│ ├── mask_101_3.dat
│ ├── mask_105_3.dat
│ ├── mask_109_3.dat
│ ├── mask_113_3.dat
│ ├── mask_117_3.dat
│ ├── mask_121_3.dat
│ ├── mask_125_3.dat
│ ├── mask_129_3.dat
│ ├── mask_133_3.dat
│ ├── mask_137_3.dat
│ ├── mask_141_3.dat
│ ├── mask_145_3.dat
│ ├── mask_149_3.dat
│ ├── mask_153_3.dat
│ ├── mask_157_3.dat
│ ├── mask_161_3.dat
│ ├── mask_165_3.dat
│ ├── mask_169_3.dat
│ ├── mask_173_3.dat
│ ├── mask_177_3.dat
│ ├── mask_21_3.dat
│ ├── mask_25_3.dat
│ ├── mask_29_3.dat
│ ├── mask_33_3.dat
│ ├── mask_37_3.dat
│ ├── mask_41_3.dat
│ ├── mask_45_3.dat
│ ├── mask_49_3.dat
│ ├── mask_53_3.dat
│ ├── mask_57_3.dat
│ ├── mask_61_3.dat
│ ├── mask_65_3.dat
│ ├── mask_69_3.dat
│ ├── mask_73_3.dat
│ ├── mask_77_3.dat
│ ├── mask_81_3.dat
│ ├── mask_85_3.dat
│ ├── mask_89_3.dat
│ ├── mask_93_3.dat
│ └── mask_97_3.dat
├── mask_4
│ ├── mask_101_4.dat
│ ├── mask_105_4.dat
│ ├── mask_109_4.dat
│ ├── mask_113_4.dat
│ ├── mask_117_4.dat
│ ├── mask_121_4.dat
│ ├── mask_125_4.dat
│ ├── mask_129_4.dat
│ ├── mask_133_4.dat
│ ├── mask_137_4.dat
│ ├── mask_141_4.dat
│ ├── mask_145_4.dat
│ ├── mask_149_4.dat
│ ├── mask_153_4.dat
│ ├── mask_157_4.dat
│ ├── mask_161_4.dat
│ ├── mask_165_4.dat
│ ├── mask_169_4.dat
│ ├── mask_173_4.dat
│ ├── mask_177_4.dat
│ ├── mask_21_4.dat
│ ├── mask_25_4.dat
│ ├── mask_29_4.dat
│ ├── mask_33_4.dat
│ ├── mask_37_4.dat
│ ├── mask_41_4.dat
│ ├── mask_45_4.dat
│ ├── mask_49_4.dat
│ ├── mask_53_4.dat
│ ├── mask_57_4.dat
│ ├── mask_61_4.dat
│ ├── mask_65_4.dat
│ ├── mask_69_4.dat
│ ├── mask_73_4.dat
│ ├── mask_77_4.dat
│ ├── mask_81_4.dat
│ ├── mask_85_4.dat
│ ├── mask_89_4.dat
│ ├── mask_93_4.dat
│ └── mask_97_4.dat
├── mask_5
│ ├── mask_101_5.dat
│ ├── mask_105_5.dat
│ ├── mask_109_5.dat
│ ├── mask_113_5.dat
│ ├── mask_117_5.dat
│ ├── mask_121_5.dat
│ ├── mask_125_5.dat
│ ├── mask_129_5.dat
│ ├── mask_133_5.dat
│ ├── mask_137_5.dat
│ ├── mask_141_5.dat
│ ├── mask_145_5.dat
│ ├── mask_149_5.dat
│ ├── mask_153_5.dat
│ ├── mask_157_5.dat
│ ├── mask_161_5.dat
│ ├── mask_165_5.dat
│ ├── mask_169_5.dat
│ ├── mask_173_5.dat
│ ├── mask_177_5.dat
│ ├── mask_21_5.dat
│ ├── mask_25_5.dat
│ ├── mask_29_5.dat
│ ├── mask_33_5.dat
│ ├── mask_37_5.dat
│ ├── mask_41_5.dat
│ ├── mask_45_5.dat
│ ├── mask_49_5.dat
│ ├── mask_53_5.dat
│ ├── mask_57_5.dat
│ ├── mask_61_5.dat
│ ├── mask_65_5.dat
│ ├── mask_69_5.dat
│ ├── mask_73_5.dat
│ ├── mask_77_5.dat
│ ├── mask_81_5.dat
│ ├── mask_85_5.dat
│ ├── mask_89_5.dat
│ ├── mask_93_5.dat
│ └── mask_97_5.dat
├── mask_6
│ ├── mask_101_6.dat
│ ├── mask_105_6.dat
│ ├── mask_109_6.dat
│ ├── mask_113_6.dat
│ ├── mask_117_6.dat
│ ├── mask_121_6.dat
│ ├── mask_125_6.dat
│ ├── mask_129_6.dat
│ ├── mask_133_6.dat
│ ├── mask_137_6.dat
│ ├── mask_141_6.dat
│ ├── mask_145_6.dat
│ ├── mask_149_6.dat
│ ├── mask_153_6.dat
│ ├── mask_157_6.dat
│ ├── mask_161_6.dat
│ ├── mask_165_6.dat
│ ├── mask_169_6.dat
│ ├── mask_173_6.dat
│ ├── mask_177_6.dat
│ ├── mask_21_6.dat
│ ├── mask_25_6.dat
│ ├── mask_29_6.dat
│ ├── mask_33_6.dat
│ ├── mask_37_6.dat
│ ├── mask_41_6.dat
│ ├── mask_45_6.dat
│ ├── mask_49_6.dat
│ ├── mask_53_6.dat
│ ├── mask_57_6.dat
│ ├── mask_61_6.dat
│ ├── mask_65_6.dat
│ ├── mask_69_6.dat
│ ├── mask_73_6.dat
│ ├── mask_77_6.dat
│ ├── mask_81_6.dat
│ ├── mask_85_6.dat
│ ├── mask_89_6.dat
│ ├── mask_93_6.dat
│ └── mask_97_6.dat
└── mask_7
│ ├── mask_101_7.dat
│ ├── mask_105_7.dat
│ ├── mask_109_7.dat
│ ├── mask_113_7.dat
│ ├── mask_117_7.dat
│ ├── mask_121_7.dat
│ ├── mask_125_7.dat
│ ├── mask_129_7.dat
│ ├── mask_133_7.dat
│ ├── mask_137_7.dat
│ ├── mask_141_7.dat
│ ├── mask_145_7.dat
│ ├── mask_149_7.dat
│ ├── mask_153_7.dat
│ ├── mask_157_7.dat
│ ├── mask_161_7.dat
│ ├── mask_165_7.dat
│ ├── mask_169_7.dat
│ ├── mask_173_7.dat
│ ├── mask_177_7.dat
│ ├── mask_21_7.dat
│ ├── mask_25_7.dat
│ ├── mask_29_7.dat
│ ├── mask_33_7.dat
│ ├── mask_37_7.dat
│ ├── mask_41_7.dat
│ ├── mask_45_7.dat
│ ├── mask_49_7.dat
│ ├── mask_53_7.dat
│ ├── mask_57_7.dat
│ ├── mask_61_7.dat
│ ├── mask_65_7.dat
│ ├── mask_69_7.dat
│ ├── mask_73_7.dat
│ ├── mask_77_7.dat
│ ├── mask_81_7.dat
│ ├── mask_85_7.dat
│ ├── mask_89_7.dat
│ ├── mask_93_7.dat
│ └── mask_97_7.dat
├── index.php
├── phpqrcode.php
├── qrbitstream.php
├── qrconfig.php
├── qrconst.php
├── qrencode.php
├── qrimage.php
├── qrinput.php
├── qrlib.php
├── qrmask.php
├── qrrscode.php
├── qrspec.php
├── qrsplit.php
├── qrtools.php
└── tools
├── merge.bat
├── merge.php
├── merge.sh
├── merged_config.php
└── merged_header.php
/README.md:
--------------------------------------------------------------------------------
1 | # WHMCS OATH Addon (WHMCS v6 & v7)
2 |
3 | This WHMCS addon module provides OATH-based two-factor authentication. You'd normally use this with a mobile app, like Google Authenticator (Free, [iOS](https://itunes.apple.com/us/app/google-authenticator/id388497605?mt=8) / [Android](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en)).
4 |
5 | If you are logged in as an admin, client area two-factor authentication will be bypassed.
6 |
7 | If user input the Emergency Code, the client will get new Emergency Code with same secret. _Two Factor Authentication will not disabled because logging in using Emergency Code_
8 |
9 | ## Installation
10 |
11 | To install, simply download the latest [release](https://github.com/openfactory-ch/whmcs-oath-addon/releases), unzip it, and upload the `modules` folder to your WHMCS root directory. The Links are automatically created with the new WHMCS v6/v7 Client Area Menu.
12 |
13 | Once uploaded, go to Setup > Addon Modules in your admin area and click Activate for the "OATH Two Factor Authentication" entry. Once activated, click Configure to customize your settings.
14 |
15 | When enabling two-factor authentication for administrators, the "Yes" option will make it optional, while "Required" will require all admins to enable two-factor authentication on their next login. You must tick off the admin role permission boxes next to the roles that you want to have access to two-factor authentication.
16 |
17 | ## Notes for Upgrade from WHMCS v5 to WHMCS v6+
18 |
19 | The former developer(s) (see Credits section) haven't updated their source for about a year. Since WHMCS v6 release their module is not compatible anymore.
20 |
21 | Since the codebase and database is exactly the same and only minimal stuff have changed, it's safe to just repeat the Installation section and overwrite the files.
22 |
23 | ## Issues
24 |
25 | Latest tested Release: WHMCS v7.1.1.
26 |
27 | If you discover any issues or bugs, please report them on the [issue tracker](https://github.com/openfactory-ch/whmcs-oath-addon/issues).
28 |
29 | ## Credits
30 |
31 | This addon was made possible by:
32 |
33 | * Current maintainer: [Openfactory GmbH](http://www.openfactory.ch)
34 | * Former developer(s): [Doctor_McKay/whmcs-oath-addon](https://bitbucket.org/Doctor_McKay/whmcs-oath-addon/) / [donate](https://www.doctormckay.com/donate.php)
35 | * Library: [PHPGangsta's GoogleAuthenticator class](https://github.com/PHPGangsta/GoogleAuthenticator)
36 | * Library: [PHP QR Code](http://phpqrcode.sourceforge.net/)
37 |
38 | ## License
39 |
40 | This module is licensed under GPLv3. See [GPLv3.txt](GPLv3.txt) for complete license terms.
41 |
--------------------------------------------------------------------------------
/modules/addons/oath/GoogleAuthenticator.php:
--------------------------------------------------------------------------------
1 | _getBase32LookupTable();
27 |
28 | // Valid secret lengths are 80 to 640 bits
29 | if ($secretLength < 16 || $secretLength > 128) {
30 | throw new Exception('Bad secret length');
31 | }
32 | $secret = '';
33 | $rnd = false;
34 | if (function_exists('random_bytes')) {
35 | $rnd = random_bytes($secretLength);
36 | } elseif (function_exists('mcrypt_create_iv')) {
37 | $rnd = mcrypt_create_iv($secretLength, MCRYPT_DEV_URANDOM);
38 | } elseif (function_exists('openssl_random_pseudo_bytes')) {
39 | $rnd = openssl_random_pseudo_bytes($secretLength, $cryptoStrong);
40 | if (!$cryptoStrong) {
41 | $rnd = false;
42 | }
43 | }
44 | if ($rnd !== false) {
45 | for ($i = 0; $i < $secretLength; ++$i) {
46 | $secret .= $validChars[ord($rnd[$i]) & 31];
47 | }
48 | } else {
49 | throw new Exception('No source of secure random');
50 | }
51 |
52 | return $secret;
53 | }
54 |
55 | /**
56 | * Calculate the code, with given secret and point in time.
57 | *
58 | * @param string $secret
59 | * @param int|null $timeSlice
60 | *
61 | * @return string
62 | */
63 | public function getCode($secret, $timeSlice = null)
64 | {
65 | if ($timeSlice === null) {
66 | $timeSlice = floor(time() / 30);
67 | }
68 |
69 | $secretkey = $this->_base32Decode($secret);
70 |
71 | // Pack time into binary string
72 | $time = chr(0).chr(0).chr(0).chr(0).pack('N*', $timeSlice);
73 | // Hash it with users secret key
74 | $hm = hash_hmac('SHA1', $time, $secretkey, true);
75 | // Use last nipple of result as index/offset
76 | $offset = ord(substr($hm, -1)) & 0x0F;
77 | // grab 4 bytes of the result
78 | $hashpart = substr($hm, $offset, 4);
79 |
80 | // Unpak binary value
81 | $value = unpack('N', $hashpart);
82 | $value = $value[1];
83 | // Only 32 bits
84 | $value = $value & 0x7FFFFFFF;
85 |
86 | $modulo = pow(10, $this->_codeLength);
87 |
88 | return str_pad($value % $modulo, $this->_codeLength, '0', STR_PAD_LEFT);
89 | }
90 |
91 | /**
92 | * Get QR-Code URL for image, from google charts.
93 | *
94 | * @param string $name
95 | * @param string $secret
96 | * @param string $title
97 | * @param array $params
98 | *
99 | * @return string
100 | */
101 | public function getQRCodeGoogleUrl($name, $secret, $title = null, $params = array())
102 | {
103 | $width = !empty($params['width']) && (int) $params['width'] > 0 ? (int) $params['width'] : 200;
104 | $height = !empty($params['height']) && (int) $params['height'] > 0 ? (int) $params['height'] : 200;
105 | $level = !empty($params['level']) && array_search($params['level'], array('L', 'M', 'Q', 'H')) !== false ? $params['level'] : 'M';
106 |
107 | $urlencoded = urlencode('otpauth://totp/'.$name.'?secret='.$secret.'');
108 | if (isset($title)) {
109 | $urlencoded .= urlencode('&issuer='.urlencode($title));
110 | }
111 |
112 | return 'https://chart.googleapis.com/chart?chs='.$width.'x'.$height.'&chld='.$level.'|0&cht=qr&chl='.$urlencoded.'';
113 | }
114 |
115 | /**
116 | * Check if the code is correct. This will accept codes starting from $discrepancy*30sec ago to $discrepancy*30sec from now.
117 | *
118 | * @param string $secret
119 | * @param string $code
120 | * @param int $discrepancy This is the allowed time drift in 30 second units (8 means 4 minutes before or after)
121 | * @param int|null $currentTimeSlice time slice if we want use other that time()
122 | *
123 | * @return bool
124 | */
125 | public function verifyCode($secret, $code, $discrepancy = 1, $currentTimeSlice = null)
126 | {
127 | if ($currentTimeSlice === null) {
128 | $currentTimeSlice = floor(time() / 30);
129 | }
130 |
131 | if (strlen($code) != 6) {
132 | return false;
133 | }
134 |
135 | for ($i = -$discrepancy; $i <= $discrepancy; ++$i) {
136 | $calculatedCode = $this->getCode($secret, $currentTimeSlice + $i);
137 | if ($this->timingSafeEquals($calculatedCode, $code)) {
138 | return true;
139 | }
140 | }
141 |
142 | return false;
143 | }
144 |
145 | /**
146 | * Set the code length, should be >=6.
147 | *
148 | * @param int $length
149 | *
150 | * @return PHPGangsta_GoogleAuthenticator
151 | */
152 | public function setCodeLength($length)
153 | {
154 | $this->_codeLength = $length;
155 |
156 | return $this;
157 | }
158 |
159 | /**
160 | * Helper class to decode base32.
161 | *
162 | * @param $secret
163 | *
164 | * @return bool|string
165 | */
166 | protected function _base32Decode($secret)
167 | {
168 | if (empty($secret)) {
169 | return '';
170 | }
171 |
172 | $base32chars = $this->_getBase32LookupTable();
173 | $base32charsFlipped = array_flip($base32chars);
174 |
175 | $paddingCharCount = substr_count($secret, $base32chars[32]);
176 | $allowedValues = array(6, 4, 3, 1, 0);
177 | if (!in_array($paddingCharCount, $allowedValues)) {
178 | return false;
179 | }
180 | for ($i = 0; $i < 4; ++$i) {
181 | if ($paddingCharCount == $allowedValues[$i] &&
182 | substr($secret, -($allowedValues[$i])) != str_repeat($base32chars[32], $allowedValues[$i])) {
183 | return false;
184 | }
185 | }
186 | $secret = str_replace('=', '', $secret);
187 | $secret = str_split($secret);
188 | $binaryString = '';
189 | for ($i = 0; $i < count($secret); $i = $i + 8) {
190 | $x = '';
191 | if (!in_array($secret[$i], $base32chars)) {
192 | return false;
193 | }
194 | for ($j = 0; $j < 8; ++$j) {
195 | $x .= str_pad(base_convert(@$base32charsFlipped[@$secret[$i + $j]], 10, 2), 5, '0', STR_PAD_LEFT);
196 | }
197 | $eightBits = str_split($x, 8);
198 | for ($z = 0; $z < count($eightBits); ++$z) {
199 | $binaryString .= (($y = chr(base_convert($eightBits[$z], 2, 10))) || ord($y) == 48) ? $y : '';
200 | }
201 | }
202 |
203 | return $binaryString;
204 | }
205 |
206 | /**
207 | * Get array with all 32 characters for decoding from/encoding to base32.
208 | *
209 | * @return array
210 | */
211 | protected function _getBase32LookupTable()
212 | {
213 | return array(
214 | 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', // 7
215 | 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', // 15
216 | 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', // 23
217 | 'Y', 'Z', '2', '3', '4', '5', '6', '7', // 31
218 | '=', // padding char
219 | );
220 | }
221 |
222 | /**
223 | * A timing safe equals comparison
224 | * more info here: http://blog.ircmaxell.com/2014/11/its-all-about-time.html.
225 | *
226 | * @param string $safeString The internal (safe) value to be checked
227 | * @param string $userString The user submitted (unsafe) value
228 | *
229 | * @return bool True if the two strings are identical
230 | */
231 | private function timingSafeEquals($safeString, $userString)
232 | {
233 | if (function_exists('hash_equals')) {
234 | return hash_equals($safeString, $userString);
235 | }
236 | $safeLen = strlen($safeString);
237 | $userLen = strlen($userString);
238 |
239 | if ($userLen != $safeLen) {
240 | return false;
241 | }
242 |
243 | $result = 0;
244 |
245 | for ($i = 0; $i < $userLen; ++$i) {
246 | $result |= (ord($safeString[$i]) ^ ord($userString[$i]));
247 | }
248 |
249 | // They are only identical strings if $result is exactly 0...
250 | return $result === 0;
251 | }
252 | }
--------------------------------------------------------------------------------
/modules/addons/oath/clientareaoath.tpl:
--------------------------------------------------------------------------------
1 |
2 |
3 | {if $incorrect}
4 |
{$OATH.incorrect}
5 | {/if}
6 |
7 | {if $login}
8 |
{$OATH.enterCodeNote}
9 |
14 |
15 | {$OATH.lostDevice}
16 |
17 | {elseif !$enable_clients}
18 |
{$OATH.inactive}
19 | {elseif !$active}
20 | {if !$verify}
21 |
{$OATH.disabled}
22 |
26 | {else}
27 |
{$OATH.scanNote}
28 |
29 |
{$OATH.unableScan}{$secret}
30 |
36 |
{$OATH.recomApp}:
37 | Google Authenticator
38 | (iOS
39 | / Android )
40 | Microsoft Authenticator Beta
41 | (Windows 10 Mobile )
42 |
43 | {/if}
44 | {elseif $backupCode}
45 |
{$OATH.backupCodeInfo}
46 |
{$OATH.newBackupCodeNote}
47 |
{$newBackupCode}
48 |
{$OATH.emCodeNote}
49 |
Continue »
50 |
51 | {else}
52 |
{$OATH.enabled}
53 | {if $allow_secret_review}
54 |
55 | {$OATH.btnSecret}
56 |
57 | {/if}
58 | {if $firstactivation}
59 |
{$OATH.emCode}: {$emergencycode} {$OATH.emCodeNote}{if !$allow_secret_review} {$OATH.emCodeNote2}{/if}
60 | {/if}
61 |
65 |
{$OATH.note}
66 | {/if}
67 |
68 |
69 |
--------------------------------------------------------------------------------
/modules/addons/oath/hooks.php:
--------------------------------------------------------------------------------
1 | getChild('My Account'))) {
13 | $menu->getChild('My Account')->addChild('OATH', array(
14 | 'label' => Lang::trans('twofactorauth'),
15 | 'uri' => 'index.php?m=oath',
16 | 'order' => '51',
17 | ));
18 | }
19 | });
20 |
21 | add_hook('ClientAreaSecondaryNavbar', 1, function (MenuItem $menu) {
22 | if (!is_null($menu->getChild('Account')) && !is_null(Menu::context('client'))) {
23 | $menu->getChild('Account')->addChild('OATH', array(
24 | 'label' => Lang::trans('twofactorauth'),
25 | 'uri' => 'index.php?m=oath',
26 | 'order' => '51',
27 | ));
28 | }
29 | });
30 |
31 | function oath_hook_client_login($vars) {
32 | if ($_SESSION['adminid']) {
33 | return;
34 | }
35 |
36 | $userid = $vars['userid'];
37 |
38 | // Check wether the secret is available or not
39 | $sqlquery = Capsule::table('mod_oath_client')
40 | ->where('userid', $vars['userid'])->get();
41 | foreach ($sqlquery as $data) {
42 | $secret = $data->secret;
43 | unset($data);
44 | break;
45 | }
46 |
47 | if (!$secret) {
48 | if (isset($_SESSION['twofactorverify'])) {
49 | unset($_SESSION['twofactorverify']);
50 | }
51 |
52 | return;
53 | }
54 |
55 | // Check wether the secret is available or not
56 | $sqlquery = Capsule::table('tbladdonmodules')
57 | ->where('module', 'oath')
58 | ->where('setting', 'enable_clients')->get();
59 | foreach ($sqlquery as $data) {
60 | $valueenableclients = $data->value;
61 | unset($data);
62 | break;
63 | }
64 |
65 | if (!$valueenableclients) {
66 | if (isset($_SESSION['twofactorverify'])) {
67 | unset($_SESSION['twofactorverify']);
68 | }
69 |
70 | return;
71 | }
72 |
73 | $_SESSION['twofactorverify'] = $userid;
74 | $_SESSION['twofactorverifypw'] = $_SESSION['upw'];
75 | unset($_SESSION['uid']);
76 | unset($_SESSION['upw']);
77 |
78 | # fix security vulnerabilty (issue #9): The automatic login will continue to login the user even when it got removed by our client login hook.
79 | # we need to ensure there will be no cookies passed to browser with autologin information and thus the cookie WHMCSUser will be overwritten
80 | # befor it gets send to the browser.
81 | $headers_cookie_safe = array();
82 | $all_headers = headers_list();
83 | foreach ($all_headers as $header) {
84 | if (preg_match('/^Set-Cookie: /', $header)) {
85 | if (!preg_match('/^Set-Cookie: WHMCSUser=/', $header)) {
86 | $headers_cookie_safe[] = $header;
87 | }
88 | }
89 | }
90 | header_remove('Set-Cookie');
91 | //for all safe headers print them out as they were
92 | //actually multiple values here would overwrite each other the way header works... http://stackoverflow.com/q/34664208
93 | foreach ($headers_cookie_safe as $header) {
94 | header($header);
95 | }
96 | //invoke deletion of any existing autologin cookies
97 | setcookie('WHMCSUser', 'deleted', time() - 3600, '/', "", false, true);
98 |
99 | header('Location: index.php?m=oath');
100 | exit(0);
101 | }
102 |
103 | add_hook("ClientLogin", 0, "oath_hook_client_login");
104 |
105 | function oath_hook_admin_logout($vars) {
106 | unset($_SESSION['twofactoradmin']);
107 | }
108 |
109 | add_hook("AdminLogout", 0, "oath_hook_admin_logout");
110 |
111 | function oath_admin_page($vars) {
112 | session_start();
113 | $script = explode('/', $_SERVER['SCRIPT_NAME']);
114 | if (($script[count($script) - 1] == 'addonmodules.php' && $_GET['module'] == 'oath') || $_SESSION['twofactoradmin'] == $_SESSION['adminid']) {
115 | return;
116 | }
117 |
118 | // Get Admin Secret
119 | try {
120 | $sqlquery = Capsule::table('mod_oath_admin')
121 | ->where('adminid', $_SESSION['adminid'])->get();
122 | foreach ($sqlquery as $data) {
123 | $secret = $data->secret;
124 | unset($data);
125 | break;
126 | }
127 | } catch (\Exception $e) {
128 | $secret = false;
129 | }
130 |
131 |
132 | // Get Enable Admins
133 | try {
134 | $sqlquery = Capsule::table('tbladdonmodules')
135 | ->where('module', 'oath')
136 | ->where('setting', 'enable_admins')->get();
137 | foreach ($sqlquery as $data) {
138 | $enable_admins = $data->value;
139 | unset($data);
140 | break;
141 | }
142 | } catch (\Exception $e) {
143 | $enable_admins = 'None';
144 | }
145 |
146 | // Get Access Value
147 | try {
148 | $sqlquery = Capsule::table('tbladdonmodules')
149 | ->where('module', 'oath')
150 | ->where('setting', 'access')->get();
151 | foreach ($sqlquery as $data) {
152 | $accessvalue = $data->value;
153 | unset($data);
154 | break;
155 | }
156 |
157 | $access = explode(',', $accessvalue);
158 | } catch (\Exception $e) {
159 | $access = 'None';
160 | }
161 |
162 | // Get Role
163 | try {
164 | $sqlquery = Admin::where('id', $_SESSION['adminid'])->get();
165 | foreach ($sqlquery as $data) {
166 | $role = $data->roleid;
167 | unset($data);
168 | break;
169 | }
170 | } catch (\Exception $e) {
171 | $role = '';
172 | }
173 |
174 | if ((!$secret && $enable_admins != 'Required') || $enable_admins == 'No' || !in_array($role, $access)) {
175 | return;
176 | }
177 |
178 | $_SESSION['original_request_uri'] = $_SERVER['REQUEST_URI'];
179 |
180 | header('Location: addonmodules.php?module=oath');
181 | session_write_close();
182 | exit(0);
183 | }
184 |
185 | add_hook("AdminAreaPage", 0, "oath_admin_page");
186 |
187 | function oath_hook_admin_client_profile_tab_fields($vars) {
188 |
189 | // Get Client Secret
190 | $sqlquery = Capsule::table('mod_oath_client')
191 | ->where('userid', $vars['userid'])->get();
192 | foreach ($sqlquery as $data) {
193 | $secret = $data->secret;
194 | unset($data);
195 | break;
196 | }
197 |
198 | if ($secret) {
199 | return array('OATH Addon' => ' Tick and save to disable two-factor authentication for this client ');
200 | } else {
201 | return array();
202 | }
203 | }
204 |
205 | add_hook("AdminClientProfileTabFields", 0, "oath_hook_admin_client_profile_tab_fields");
206 |
207 | function oath_hook_admin_client_profile_tab_fields_save($vars) {
208 | if (isset($vars['disable_twofactor'])) {
209 | Capsule::table('mod_oath_client')->where('userid', $vars['userid'])->delete();
210 | }
211 | }
212 |
213 | add_hook("AdminClientProfileTabFieldsSave", 0, "oath_hook_admin_client_profile_tab_fields_save");
214 |
--------------------------------------------------------------------------------
/modules/addons/oath/lang/bulgarian.php:
--------------------------------------------------------------------------------
1 |
32 |
--------------------------------------------------------------------------------
/modules/addons/oath/lang/chinese.php:
--------------------------------------------------------------------------------
1 |
26 |
--------------------------------------------------------------------------------
/modules/addons/oath/lang/english.php:
--------------------------------------------------------------------------------
1 |
28 |
--------------------------------------------------------------------------------
/modules/addons/oath/lang/german.php:
--------------------------------------------------------------------------------
1 |
28 |
--------------------------------------------------------------------------------
/modules/addons/oath/lang/persian.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/modules/addons/oath/lang/portuguese-br.php:
--------------------------------------------------------------------------------
1 |
26 |
--------------------------------------------------------------------------------
/modules/addons/oath/lang/portuguese-pt.php:
--------------------------------------------------------------------------------
1 |
28 |
--------------------------------------------------------------------------------
/modules/addons/oath/lang/romanian.php:
--------------------------------------------------------------------------------
1 |
31 |
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_1.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_10.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_10.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_10.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_11.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_11.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_11.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_12.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_12.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_12.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_13.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_13.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_13.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_14.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_14.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_14.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_15.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_15.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_15.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_16.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_16.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_16.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_17.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_17.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_17.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_18.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_18.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_18.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_18.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_19.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_19.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_19.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_19.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_2.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_20.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_20.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_20.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_21.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_21.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_21.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_21.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_22.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_22.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_22.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_22.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_23.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_23.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_23.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_23.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_24.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_24.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_24.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_25.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_25.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_25.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_25.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_26.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_26.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_26.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_26.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_27.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_27.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_27.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_27.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_28.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_28.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_28.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_28.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_29.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_29.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_29.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_3.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_30.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_30.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_30.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_30.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_31.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_31.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_31.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_31.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_32.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_32.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_32.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_33.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_33.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_33.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_33.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_34.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_34.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_34.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_34.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_35.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_35.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_35.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_35.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_36.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_36.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_36.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_36.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_37.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_37.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_37.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_37.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_38.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_38.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_38.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_38.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_39.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_39.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_39.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_39.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_4.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_40.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_40.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_40.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_5.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_6.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_7.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_8.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_8.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_8.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_9.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_9.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/frame_9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/frame_9.png
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_101_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_101_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_105_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_105_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_109_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_109_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_113_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_113_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_117_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_117_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_121_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_121_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_125_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_125_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_129_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_129_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_133_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_133_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_137_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_137_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_141_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_141_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_145_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_145_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_149_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_149_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_153_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_153_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_157_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_157_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_161_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_161_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_165_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_165_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_169_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_169_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_173_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_173_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_177_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_177_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_21_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_21_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_25_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_25_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_29_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_29_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_33_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_33_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_37_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_37_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_41_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_41_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_45_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_45_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_49_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_49_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_53_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_53_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_57_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_57_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_61_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_61_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_65_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_65_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_69_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_69_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_73_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_73_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_77_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_77_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_81_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_81_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_85_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_85_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_89_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_89_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_93_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_93_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_0/mask_97_0.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_0/mask_97_0.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_101_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_101_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_105_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_105_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_109_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_109_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_113_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_113_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_117_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_117_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_121_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_121_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_125_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_125_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_129_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_129_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_133_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_133_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_137_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_137_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_141_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_141_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_145_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_145_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_149_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_149_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_153_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_153_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_157_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_157_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_161_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_161_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_165_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_165_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_169_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_169_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_173_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_173_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_177_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_177_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_21_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_21_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_25_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_25_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_29_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_29_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_33_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_33_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_37_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_37_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_41_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_41_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_45_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_45_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_49_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_49_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_53_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_53_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_57_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_57_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_61_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_61_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_65_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_65_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_69_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_69_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_73_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_73_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_77_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_77_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_81_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_81_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_85_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_85_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_89_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_89_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_93_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_93_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_1/mask_97_1.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_1/mask_97_1.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_101_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_101_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_105_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_105_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_109_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_109_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_113_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_113_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_117_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_117_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_121_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_121_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_125_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_125_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_129_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_129_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_133_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_133_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_137_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_137_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_141_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_141_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_145_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_145_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_149_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_149_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_153_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_153_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_157_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_157_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_161_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_161_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_165_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_165_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_169_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_169_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_173_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_173_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_177_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_177_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_21_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_21_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_25_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_25_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_29_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_29_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_33_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_33_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_37_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_37_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_41_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_41_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_45_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_45_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_49_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_49_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_53_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_53_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_57_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_57_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_61_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_61_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_65_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_65_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_69_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_69_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_73_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_73_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_77_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_77_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_81_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_81_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_85_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_85_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_89_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_89_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_93_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_93_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_2/mask_97_2.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_2/mask_97_2.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_101_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_101_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_105_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_105_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_109_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_109_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_113_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_113_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_117_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_117_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_121_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_121_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_125_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_125_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_129_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_129_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_133_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_133_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_137_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_137_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_141_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_141_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_145_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_145_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_149_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_149_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_153_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_153_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_157_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_157_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_161_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_161_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_165_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_165_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_169_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_169_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_173_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_173_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_177_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_177_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_21_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_21_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_25_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_25_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_29_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_29_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_33_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_33_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_37_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_37_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_41_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_41_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_45_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_45_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_49_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_49_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_53_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_53_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_57_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_57_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_61_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_61_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_65_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_65_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_69_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_69_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_73_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_73_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_77_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_77_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_81_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_81_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_85_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_85_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_89_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_89_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_93_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_93_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_3/mask_97_3.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_3/mask_97_3.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_101_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_101_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_105_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_105_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_109_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_109_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_113_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_113_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_117_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_117_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_121_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_121_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_125_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_125_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_129_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_129_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_133_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_133_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_137_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_137_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_141_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_141_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_145_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_145_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_149_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_149_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_153_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_153_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_157_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_157_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_161_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_161_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_165_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_165_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_169_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_169_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_173_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_173_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_177_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_177_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_21_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_21_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_25_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_25_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_29_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_29_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_33_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_33_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_37_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_37_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_41_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_41_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_45_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_45_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_49_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_49_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_53_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_53_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_57_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_57_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_61_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_61_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_65_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_65_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_69_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_69_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_73_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_73_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_77_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_77_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_81_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_81_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_85_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_85_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_89_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_89_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_93_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_93_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_4/mask_97_4.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_4/mask_97_4.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_101_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_101_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_105_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_105_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_109_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_109_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_113_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_113_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_117_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_117_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_121_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_121_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_125_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_125_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_129_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_129_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_133_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_133_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_137_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_137_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_141_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_141_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_145_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_145_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_149_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_149_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_153_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_153_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_157_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_157_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_161_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_161_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_165_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_165_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_169_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_169_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_173_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_173_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_177_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_177_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_21_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_21_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_25_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_25_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_29_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_29_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_33_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_33_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_37_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_37_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_41_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_41_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_45_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_45_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_49_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_49_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_53_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_53_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_57_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_57_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_61_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_61_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_65_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_65_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_69_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_69_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_73_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_73_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_77_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_77_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_81_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_81_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_85_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_85_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_89_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_89_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_93_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_93_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_5/mask_97_5.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_5/mask_97_5.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_101_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_101_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_105_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_105_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_109_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_109_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_113_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_113_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_117_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_117_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_121_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_121_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_125_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_125_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_129_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_129_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_133_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_133_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_137_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_137_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_141_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_141_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_145_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_145_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_149_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_149_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_153_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_153_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_157_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_157_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_161_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_161_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_165_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_165_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_169_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_169_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_173_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_173_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_177_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_177_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_21_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_21_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_25_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_25_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_29_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_29_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_33_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_33_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_37_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_37_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_41_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_41_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_45_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_45_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_49_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_49_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_53_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_53_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_57_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_57_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_61_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_61_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_65_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_65_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_69_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_69_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_73_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_73_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_77_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_77_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_81_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_81_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_85_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_85_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_89_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_89_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_93_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_93_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_6/mask_97_6.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_6/mask_97_6.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_101_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_101_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_105_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_105_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_109_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_109_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_113_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_113_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_117_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_117_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_121_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_121_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_125_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_125_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_129_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_129_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_133_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_133_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_137_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_137_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_141_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_141_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_145_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_145_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_149_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_149_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_153_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_153_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_157_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_157_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_161_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_161_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_165_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_165_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_169_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_169_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_173_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_173_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_177_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_177_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_21_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_21_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_25_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_25_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_29_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_29_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_33_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_33_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_37_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_37_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_41_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_41_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_45_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_45_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_49_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_49_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_53_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_53_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_57_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_57_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_61_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_61_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_65_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_65_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_69_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_69_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_73_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_73_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_77_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_77_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_81_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_81_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_85_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_85_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_89_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_89_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_93_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_93_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/cache/mask_7/mask_97_7.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openfactory-ch/whmcs-oath-addon/fba34e0689c0975a868b7598369137185bf6051a/modules/addons/oath/phpqrcode/cache/mask_7/mask_97_7.dat
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/index.php:
--------------------------------------------------------------------------------
1 |
9 | *
10 | * This library is free software; you can redistribute it and/or
11 | * modify it under the terms of the GNU Lesser General Public
12 | * License as published by the Free Software Foundation; either
13 | * version 3 of the License, or any later version.
14 | *
15 | * This library is distributed in the hope that it will be useful,
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 | * Lesser General Public License for more details.
19 | *
20 | * You should have received a copy of the GNU Lesser General Public
21 | * License along with this library; if not, write to the Free Software
22 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23 | */
24 |
25 | echo "PHP QR Code ";
26 |
27 | //set it to writable location, a place for temp generated PNG files
28 | $PNG_TEMP_DIR = dirname(__FILE__).DIRECTORY_SEPARATOR.'temp'.DIRECTORY_SEPARATOR;
29 |
30 | //html PNG location prefix
31 | $PNG_WEB_DIR = 'temp/';
32 |
33 | include "qrlib.php";
34 |
35 | //ofcourse we need rights to create temp dir
36 | if (!file_exists($PNG_TEMP_DIR))
37 | mkdir($PNG_TEMP_DIR);
38 |
39 |
40 | $filename = $PNG_TEMP_DIR.'test.png';
41 |
42 | //processing form input
43 | //remember to sanitize user input in real-life solution !!!
44 | $errorCorrectionLevel = 'L';
45 | if (isset($_REQUEST['level']) && in_array($_REQUEST['level'], array('L','M','Q','H')))
46 | $errorCorrectionLevel = $_REQUEST['level'];
47 |
48 | $matrixPointSize = 4;
49 | if (isset($_REQUEST['size']))
50 | $matrixPointSize = min(max((int)$_REQUEST['size'], 1), 10);
51 |
52 |
53 | if (isset($_REQUEST['data'])) {
54 |
55 | //it's very important!
56 | if (trim($_REQUEST['data']) == '')
57 | die('data cannot be empty! back ');
58 |
59 | // user data
60 | $filename = $PNG_TEMP_DIR.'test'.md5($_REQUEST['data'].'|'.$errorCorrectionLevel.'|'.$matrixPointSize).'.png';
61 | QRcode::png($_REQUEST['data'], $filename, $errorCorrectionLevel, $matrixPointSize, 2);
62 |
63 | } else {
64 |
65 | //default data
66 | echo 'You can provide data in GET parameter: like that ';
67 | QRcode::png('PHP QR Code :)', $filename, $errorCorrectionLevel, $matrixPointSize, 2);
68 |
69 | }
70 |
71 | //display generated file
72 | echo ' ';
73 |
74 | //config form
75 | echo ' ';
90 |
91 | // benchmark
92 | QRtools::timeBenchmark();
93 |
94 |
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/qrbitstream.php:
--------------------------------------------------------------------------------
1 |
9 | *
10 | * PHP QR Code is distributed under LGPL 3
11 | * Copyright (C) 2010 Dominik Dzienia
12 | *
13 | * This library is free software; you can redistribute it and/or
14 | * modify it under the terms of the GNU Lesser General Public
15 | * License as published by the Free Software Foundation; either
16 | * version 3 of the License, or any later version.
17 | *
18 | * This library is distributed in the hope that it will be useful,
19 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 | * Lesser General Public License for more details.
22 | *
23 | * You should have received a copy of the GNU Lesser General Public
24 | * License along with this library; if not, write to the Free Software
25 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 | */
27 |
28 | class QRbitstream {
29 |
30 | public $data = array();
31 |
32 | //----------------------------------------------------------------------
33 | public function size()
34 | {
35 | return count($this->data);
36 | }
37 |
38 | //----------------------------------------------------------------------
39 | public function allocate($setLength)
40 | {
41 | $this->data = array_fill(0, $setLength, 0);
42 | return 0;
43 | }
44 |
45 | //----------------------------------------------------------------------
46 | public static function newFromNum($bits, $num)
47 | {
48 | $bstream = new QRbitstream();
49 | $bstream->allocate($bits);
50 |
51 | $mask = 1 << ($bits - 1);
52 | for($i=0; $i<$bits; $i++) {
53 | if($num & $mask) {
54 | $bstream->data[$i] = 1;
55 | } else {
56 | $bstream->data[$i] = 0;
57 | }
58 | $mask = $mask >> 1;
59 | }
60 |
61 | return $bstream;
62 | }
63 |
64 | //----------------------------------------------------------------------
65 | public static function newFromBytes($size, $data)
66 | {
67 | $bstream = new QRbitstream();
68 | $bstream->allocate($size * 8);
69 | $p=0;
70 |
71 | for($i=0; $i<$size; $i++) {
72 | $mask = 0x80;
73 | for($j=0; $j<8; $j++) {
74 | if($data[$i] & $mask) {
75 | $bstream->data[$p] = 1;
76 | } else {
77 | $bstream->data[$p] = 0;
78 | }
79 | $p++;
80 | $mask = $mask >> 1;
81 | }
82 | }
83 |
84 | return $bstream;
85 | }
86 |
87 | //----------------------------------------------------------------------
88 | public function append(QRbitstream $arg)
89 | {
90 | if (is_null($arg)) {
91 | return -1;
92 | }
93 |
94 | if($arg->size() == 0) {
95 | return 0;
96 | }
97 |
98 | if($this->size() == 0) {
99 | $this->data = $arg->data;
100 | return 0;
101 | }
102 |
103 | $this->data = array_values(array_merge($this->data, $arg->data));
104 |
105 | return 0;
106 | }
107 |
108 | //----------------------------------------------------------------------
109 | public function appendNum($bits, $num)
110 | {
111 | if ($bits == 0)
112 | return 0;
113 |
114 | $b = QRbitstream::newFromNum($bits, $num);
115 |
116 | if(is_null($b))
117 | return -1;
118 |
119 | $ret = $this->append($b);
120 | unset($b);
121 |
122 | return $ret;
123 | }
124 |
125 | //----------------------------------------------------------------------
126 | public function appendBytes($size, $data)
127 | {
128 | if ($size == 0)
129 | return 0;
130 |
131 | $b = QRbitstream::newFromBytes($size, $data);
132 |
133 | if(is_null($b))
134 | return -1;
135 |
136 | $ret = $this->append($b);
137 | unset($b);
138 |
139 | return $ret;
140 | }
141 |
142 | //----------------------------------------------------------------------
143 | public function toByte()
144 | {
145 |
146 | $size = $this->size();
147 |
148 | if($size == 0) {
149 | return array();
150 | }
151 |
152 | $data = array_fill(0, (int)(($size + 7) / 8), 0);
153 | $bytes = (int)($size / 8);
154 |
155 | $p = 0;
156 |
157 | for($i=0; $i<$bytes; $i++) {
158 | $v = 0;
159 | for($j=0; $j<8; $j++) {
160 | $v = $v << 1;
161 | $v |= $this->data[$p];
162 | $p++;
163 | }
164 | $data[$i] = $v;
165 | }
166 |
167 | if($size & 7) {
168 | $v = 0;
169 | for($j=0; $j<($size & 7); $j++) {
170 | $v = $v << 1;
171 | $v |= $this->data[$p];
172 | $p++;
173 | }
174 | $data[$bytes] = $v;
175 | }
176 |
177 | return $data;
178 | }
179 |
180 | }
181 |
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/qrconfig.php:
--------------------------------------------------------------------------------
1 |
10 | *
11 | * PHP QR Code is distributed under LGPL 3
12 | * Copyright (C) 2010 Dominik Dzienia
13 | *
14 | * This library is free software; you can redistribute it and/or
15 | * modify it under the terms of the GNU Lesser General Public
16 | * License as published by the Free Software Foundation; either
17 | * version 3 of the License, or any later version.
18 | *
19 | * This library is distributed in the hope that it will be useful,
20 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 | * Lesser General Public License for more details.
23 | *
24 | * You should have received a copy of the GNU Lesser General Public
25 | * License along with this library; if not, write to the Free Software
26 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
27 | */
28 |
29 | // Encoding modes
30 |
31 | define('QR_MODE_NUL', -1);
32 | define('QR_MODE_NUM', 0);
33 | define('QR_MODE_AN', 1);
34 | define('QR_MODE_8', 2);
35 | define('QR_MODE_KANJI', 3);
36 | define('QR_MODE_STRUCTURE', 4);
37 |
38 | // Levels of error correction.
39 |
40 | define('QR_ECLEVEL_L', 0);
41 | define('QR_ECLEVEL_M', 1);
42 | define('QR_ECLEVEL_Q', 2);
43 | define('QR_ECLEVEL_H', 3);
44 |
45 | // Supported output formats
46 |
47 | define('QR_FORMAT_TEXT', 0);
48 | define('QR_FORMAT_PNG', 1);
49 |
50 | class qrstr {
51 | public static function set(&$srctab, $x, $y, $repl, $replLen = false) {
52 | $srctab[$y] = substr_replace($srctab[$y], ($replLen !== false)?substr($repl,0,$replLen):$repl, $x, ($replLen !== false)?$replLen:strlen($repl));
53 | }
54 | }
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/qrimage.php:
--------------------------------------------------------------------------------
1 |
9 | *
10 | * This library is free software; you can redistribute it and/or
11 | * modify it under the terms of the GNU Lesser General Public
12 | * License as published by the Free Software Foundation; either
13 | * version 3 of the License, or any later version.
14 | *
15 | * This library is distributed in the hope that it will be useful,
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 | * Lesser General Public License for more details.
19 | *
20 | * You should have received a copy of the GNU Lesser General Public
21 | * License along with this library; if not, write to the Free Software
22 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23 | */
24 |
25 | define('QR_IMAGE', true);
26 |
27 | class QRimage {
28 |
29 | //----------------------------------------------------------------------
30 | public static function png($frame, $filename = false, $pixelPerPoint = 4, $outerFrame = 4,$saveandprint=FALSE)
31 | {
32 | $image = self::image($frame, $pixelPerPoint, $outerFrame);
33 |
34 | if ($filename === false) {
35 | Header("Content-type: image/png");
36 | ImagePng($image);
37 | } else {
38 | if($saveandprint===TRUE){
39 | ImagePng($image, $filename);
40 | header("Content-type: image/png");
41 | ImagePng($image);
42 | }else{
43 | ImagePng($image, $filename);
44 | }
45 | }
46 |
47 | ImageDestroy($image);
48 | }
49 |
50 | //----------------------------------------------------------------------
51 | public static function jpg($frame, $filename = false, $pixelPerPoint = 8, $outerFrame = 4, $q = 85)
52 | {
53 | $image = self::image($frame, $pixelPerPoint, $outerFrame);
54 |
55 | if ($filename === false) {
56 | Header("Content-type: image/jpeg");
57 | ImageJpeg($image, null, $q);
58 | } else {
59 | ImageJpeg($image, $filename, $q);
60 | }
61 |
62 | ImageDestroy($image);
63 | }
64 |
65 | //----------------------------------------------------------------------
66 | private static function image($frame, $pixelPerPoint = 4, $outerFrame = 4)
67 | {
68 | $h = count($frame);
69 | $w = strlen($frame[0]);
70 |
71 | $imgW = $w + 2*$outerFrame;
72 | $imgH = $h + 2*$outerFrame;
73 |
74 | $base_image =ImageCreate($imgW, $imgH);
75 |
76 | $col[0] = ImageColorAllocate($base_image,255,255,255);
77 | $col[1] = ImageColorAllocate($base_image,0,0,0);
78 |
79 | imagefill($base_image, 0, 0, $col[0]);
80 |
81 | for($y=0; $y<$h; $y++) {
82 | for($x=0; $x<$w; $x++) {
83 | if ($frame[$y][$x] == '1') {
84 | ImageSetPixel($base_image,$x+$outerFrame,$y+$outerFrame,$col[1]);
85 | }
86 | }
87 | }
88 |
89 | $target_image =ImageCreate($imgW * $pixelPerPoint, $imgH * $pixelPerPoint);
90 | ImageCopyResized($target_image, $base_image, 0, 0, 0, 0, $imgW * $pixelPerPoint, $imgH * $pixelPerPoint, $imgW, $imgH);
91 | ImageDestroy($base_image);
92 |
93 | return $target_image;
94 | }
95 | }
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/qrlib.php:
--------------------------------------------------------------------------------
1 |
9 | *
10 | * PHP QR Code is distributed under LGPL 3
11 | * Copyright (C) 2010 Dominik Dzienia
12 | *
13 | * This library is free software; you can redistribute it and/or
14 | * modify it under the terms of the GNU Lesser General Public
15 | * License as published by the Free Software Foundation; either
16 | * version 3 of the License, or any later version.
17 | *
18 | * This library is distributed in the hope that it will be useful,
19 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 | * Lesser General Public License for more details.
22 | *
23 | * You should have received a copy of the GNU Lesser General Public
24 | * License along with this library; if not, write to the Free Software
25 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 | */
27 |
28 | $QR_BASEDIR = dirname(__FILE__).DIRECTORY_SEPARATOR;
29 |
30 | // Required libs
31 |
32 | include $QR_BASEDIR."qrconst.php";
33 | include $QR_BASEDIR."qrconfig.php";
34 | include $QR_BASEDIR."qrtools.php";
35 | include $QR_BASEDIR."qrspec.php";
36 | include $QR_BASEDIR."qrimage.php";
37 | include $QR_BASEDIR."qrinput.php";
38 | include $QR_BASEDIR."qrbitstream.php";
39 | include $QR_BASEDIR."qrsplit.php";
40 | include $QR_BASEDIR."qrrscode.php";
41 | include $QR_BASEDIR."qrmask.php";
42 | include $QR_BASEDIR."qrencode.php";
43 |
44 |
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/qrrscode.php:
--------------------------------------------------------------------------------
1 |
12 | *
13 | * PHP QR Code is distributed under LGPL 3
14 | * Copyright (C) 2010 Dominik Dzienia
15 | *
16 | * This library is free software; you can redistribute it and/or
17 | * modify it under the terms of the GNU Lesser General Public
18 | * License as published by the Free Software Foundation; either
19 | * version 3 of the License, or any later version.
20 | *
21 | * This library is distributed in the hope that it will be useful,
22 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24 | * Lesser General Public License for more details.
25 | *
26 | * You should have received a copy of the GNU Lesser General Public
27 | * License along with this library; if not, write to the Free Software
28 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
29 | */
30 |
31 | class QRrsItem {
32 |
33 | public $mm; // Bits per symbol
34 | public $nn; // Symbols per block (= (1<= $this->nn) {
49 | $x -= $this->nn;
50 | $x = ($x >> $this->mm) + ($x & $this->nn);
51 | }
52 |
53 | return $x;
54 | }
55 |
56 | //----------------------------------------------------------------------
57 | public static function init_rs_char($symsize, $gfpoly, $fcr, $prim, $nroots, $pad)
58 | {
59 | // Common code for intializing a Reed-Solomon control block (char or int symbols)
60 | // Copyright 2004 Phil Karn, KA9Q
61 | // May be used under the terms of the GNU Lesser General Public License (LGPL)
62 |
63 | $rs = null;
64 |
65 | // Check parameter ranges
66 | if($symsize < 0 || $symsize > 8) return $rs;
67 | if($fcr < 0 || $fcr >= (1<<$symsize)) return $rs;
68 | if($prim <= 0 || $prim >= (1<<$symsize)) return $rs;
69 | if($nroots < 0 || $nroots >= (1<<$symsize)) return $rs; // Can't have more roots than symbol values!
70 | if($pad < 0 || $pad >= ((1<<$symsize) -1 - $nroots)) return $rs; // Too much padding
71 |
72 | $rs = new QRrsItem();
73 | $rs->mm = $symsize;
74 | $rs->nn = (1<<$symsize)-1;
75 | $rs->pad = $pad;
76 |
77 | $rs->alpha_to = array_fill(0, $rs->nn+1, 0);
78 | $rs->index_of = array_fill(0, $rs->nn+1, 0);
79 |
80 | // PHP style macro replacement ;)
81 | $NN =& $rs->nn;
82 | $A0 =& $NN;
83 |
84 | // Generate Galois field lookup tables
85 | $rs->index_of[0] = $A0; // log(zero) = -inf
86 | $rs->alpha_to[$A0] = 0; // alpha**-inf = 0
87 | $sr = 1;
88 |
89 | for($i=0; $i<$rs->nn; $i++) {
90 | $rs->index_of[$sr] = $i;
91 | $rs->alpha_to[$i] = $sr;
92 | $sr <<= 1;
93 | if($sr & (1<<$symsize)) {
94 | $sr ^= $gfpoly;
95 | }
96 | $sr &= $rs->nn;
97 | }
98 |
99 | if($sr != 1){
100 | // field generator polynomial is not primitive!
101 | $rs = NULL;
102 | return $rs;
103 | }
104 |
105 | /* Form RS code generator polynomial from its roots */
106 | $rs->genpoly = array_fill(0, $nroots+1, 0);
107 |
108 | $rs->fcr = $fcr;
109 | $rs->prim = $prim;
110 | $rs->nroots = $nroots;
111 | $rs->gfpoly = $gfpoly;
112 |
113 | /* Find prim-th root of 1, used in decoding */
114 | for($iprim=1;($iprim % $prim) != 0;$iprim += $rs->nn)
115 | ; // intentional empty-body loop!
116 |
117 | $rs->iprim = (int)($iprim / $prim);
118 | $rs->genpoly[0] = 1;
119 |
120 | for ($i = 0,$root=$fcr*$prim; $i < $nroots; $i++, $root += $prim) {
121 | $rs->genpoly[$i+1] = 1;
122 |
123 | // Multiply rs->genpoly[] by @**(root + x)
124 | for ($j = $i; $j > 0; $j--) {
125 | if ($rs->genpoly[$j] != 0) {
126 | $rs->genpoly[$j] = $rs->genpoly[$j-1] ^ $rs->alpha_to[$rs->modnn($rs->index_of[$rs->genpoly[$j]] + $root)];
127 | } else {
128 | $rs->genpoly[$j] = $rs->genpoly[$j-1];
129 | }
130 | }
131 | // rs->genpoly[0] can never be zero
132 | $rs->genpoly[0] = $rs->alpha_to[$rs->modnn($rs->index_of[$rs->genpoly[0]] + $root)];
133 | }
134 |
135 | // convert rs->genpoly[] to index form for quicker encoding
136 | for ($i = 0; $i <= $nroots; $i++)
137 | $rs->genpoly[$i] = $rs->index_of[$rs->genpoly[$i]];
138 |
139 | return $rs;
140 | }
141 |
142 | //----------------------------------------------------------------------
143 | public function encode_rs_char($data, &$parity)
144 | {
145 | $MM =& $this->mm;
146 | $NN =& $this->nn;
147 | $ALPHA_TO =& $this->alpha_to;
148 | $INDEX_OF =& $this->index_of;
149 | $GENPOLY =& $this->genpoly;
150 | $NROOTS =& $this->nroots;
151 | $FCR =& $this->fcr;
152 | $PRIM =& $this->prim;
153 | $IPRIM =& $this->iprim;
154 | $PAD =& $this->pad;
155 | $A0 =& $NN;
156 |
157 | $parity = array_fill(0, $NROOTS, 0);
158 |
159 | for($i=0; $i< ($NN-$NROOTS-$PAD); $i++) {
160 |
161 | $feedback = $INDEX_OF[$data[$i] ^ $parity[0]];
162 | if($feedback != $A0) {
163 | // feedback term is non-zero
164 |
165 | // This line is unnecessary when GENPOLY[NROOTS] is unity, as it must
166 | // always be for the polynomials constructed by init_rs()
167 | $feedback = $this->modnn($NN - $GENPOLY[$NROOTS] + $feedback);
168 |
169 | for($j=1;$j<$NROOTS;$j++) {
170 | $parity[$j] ^= $ALPHA_TO[$this->modnn($feedback + $GENPOLY[$NROOTS-$j])];
171 | }
172 | }
173 |
174 | // Shift
175 | array_shift($parity);
176 | if($feedback != $A0) {
177 | array_push($parity, $ALPHA_TO[$this->modnn($feedback + $GENPOLY[0])]);
178 | } else {
179 | array_push($parity, 0);
180 | }
181 | }
182 | }
183 | }
184 |
185 | //##########################################################################
186 |
187 | class QRrs {
188 |
189 | public static $items = array();
190 |
191 | //----------------------------------------------------------------------
192 | public static function init_rs($symsize, $gfpoly, $fcr, $prim, $nroots, $pad)
193 | {
194 | foreach(self::$items as $rs) {
195 | if($rs->pad != $pad) continue;
196 | if($rs->nroots != $nroots) continue;
197 | if($rs->mm != $symsize) continue;
198 | if($rs->gfpoly != $gfpoly) continue;
199 | if($rs->fcr != $fcr) continue;
200 | if($rs->prim != $prim) continue;
201 |
202 | return $rs;
203 | }
204 |
205 | $rs = QRrsItem::init_rs_char($symsize, $gfpoly, $fcr, $prim, $nroots, $pad);
206 | array_unshift(self::$items, $rs);
207 |
208 | return $rs;
209 | }
210 | }
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/qrtools.php:
--------------------------------------------------------------------------------
1 |
9 | *
10 | * This library is free software; you can redistribute it and/or
11 | * modify it under the terms of the GNU Lesser General Public
12 | * License as published by the Free Software Foundation; either
13 | * version 3 of the License, or any later version.
14 | *
15 | * This library is distributed in the hope that it will be useful,
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 | * Lesser General Public License for more details.
19 | *
20 | * You should have received a copy of the GNU Lesser General Public
21 | * License along with this library; if not, write to the Free Software
22 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23 | */
24 |
25 | class QRtools {
26 |
27 | //----------------------------------------------------------------------
28 | public static function binarize($frame)
29 | {
30 | $len = count($frame);
31 | foreach ($frame as &$frameLine) {
32 |
33 | for($i=0; $i<$len; $i++) {
34 | $frameLine[$i] = (ord($frameLine[$i])&1)?'1':'0';
35 | }
36 | }
37 |
38 | return $frame;
39 | }
40 |
41 | //----------------------------------------------------------------------
42 | public static function tcpdfBarcodeArray($code, $mode = 'QR,L', $tcPdfVersion = '4.5.037')
43 | {
44 | $barcode_array = array();
45 |
46 | if (!is_array($mode))
47 | $mode = explode(',', $mode);
48 |
49 | $eccLevel = 'L';
50 |
51 | if (count($mode) > 1) {
52 | $eccLevel = $mode[1];
53 | }
54 |
55 | $qrTab = QRcode::text($code, false, $eccLevel);
56 | $size = count($qrTab);
57 |
58 | $barcode_array['num_rows'] = $size;
59 | $barcode_array['num_cols'] = $size;
60 | $barcode_array['bcode'] = array();
61 |
62 | foreach ($qrTab as $line) {
63 | $arrAdd = array();
64 | foreach(str_split($line) as $char)
65 | $arrAdd[] = ($char=='1')?1:0;
66 | $barcode_array['bcode'][] = $arrAdd;
67 | }
68 |
69 | return $barcode_array;
70 | }
71 |
72 | //----------------------------------------------------------------------
73 | public static function clearCache()
74 | {
75 | self::$frames = array();
76 | }
77 |
78 | //----------------------------------------------------------------------
79 | public static function buildCache()
80 | {
81 | QRtools::markTime('before_build_cache');
82 |
83 | $mask = new QRmask();
84 | for ($a=1; $a <= QRSPEC_VERSION_MAX; $a++) {
85 | $frame = QRspec::newFrame($a);
86 | if (QR_IMAGE) {
87 | $fileName = QR_CACHE_DIR.'frame_'.$a.'.png';
88 | QRimage::png(self::binarize($frame), $fileName, 1, 0);
89 | }
90 |
91 | $width = count($frame);
92 | $bitMask = array_fill(0, $width, array_fill(0, $width, 0));
93 | for ($maskNo=0; $maskNo<8; $maskNo++)
94 | $mask->makeMaskNo($maskNo, $width, $frame, $bitMask, true);
95 | }
96 |
97 | QRtools::markTime('after_build_cache');
98 | }
99 |
100 | //----------------------------------------------------------------------
101 | public static function log($outfile, $err)
102 | {
103 | if (QR_LOG_DIR !== false) {
104 | if ($err != '') {
105 | if ($outfile !== false) {
106 | file_put_contents(QR_LOG_DIR.basename($outfile).'-errors.txt', date('Y-m-d H:i:s').': '.$err, FILE_APPEND);
107 | } else {
108 | file_put_contents(QR_LOG_DIR.'errors.txt', date('Y-m-d H:i:s').': '.$err, FILE_APPEND);
109 | }
110 | }
111 | }
112 | }
113 |
114 | //----------------------------------------------------------------------
115 | public static function dumpMask($frame)
116 | {
117 | $width = count($frame);
118 | for($y=0;$y<$width;$y++) {
119 | for($x=0;$x<$width;$x++) {
120 | echo ord($frame[$y][$x]).',';
121 | }
122 | }
123 | }
124 |
125 | //----------------------------------------------------------------------
126 | public static function markTime($markerId)
127 | {
128 | list($usec, $sec) = explode(" ", microtime());
129 | $time = ((float)$usec + (float)$sec);
130 |
131 | if (!isset($GLOBALS['qr_time_bench']))
132 | $GLOBALS['qr_time_bench'] = array();
133 |
134 | $GLOBALS['qr_time_bench'][$markerId] = $time;
135 | }
136 |
137 | //----------------------------------------------------------------------
138 | public static function timeBenchmark()
139 | {
140 | self::markTime('finish');
141 |
142 | $lastTime = 0;
143 | $startTime = 0;
144 | $p = 0;
145 |
146 | echo '
147 | BENCHMARK
148 | ';
149 |
150 | foreach($GLOBALS['qr_time_bench'] as $markerId=>$thisTime) {
151 | if ($p > 0) {
152 | echo 'till '.$markerId.': '.number_format($thisTime-$lastTime, 6).'s ';
153 | } else {
154 | $startTime = $thisTime;
155 | }
156 |
157 | $p++;
158 | $lastTime = $thisTime;
159 | }
160 |
161 | echo '
162 | TOTAL: '.number_format($lastTime-$startTime, 6).'s
163 |
164 |
';
165 | }
166 |
167 | }
168 |
169 | //##########################################################################
170 |
171 | QRtools::markTime('start');
172 |
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/tools/merge.bat:
--------------------------------------------------------------------------------
1 | php ./merge.php
2 | pause
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/tools/merge.php:
--------------------------------------------------------------------------------
1 |
12 | *
13 | * This library is free software; you can redistribute it and/or
14 | * modify it under the terms of the GNU Lesser General Public
15 | * License as published by the Free Software Foundation; either
16 | * version 3 of the License, or any later version.
17 | *
18 | * This library is distributed in the hope that it will be useful,
19 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 | * Lesser General Public License for more details.
22 | *
23 | * You should have received a copy of the GNU Lesser General Public
24 | * License along with this library; if not, write to the Free Software
25 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 | */
27 |
28 | $QR_BASEDIR = dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR;
29 | $QR_TOOLSDIR = dirname(__FILE__).DIRECTORY_SEPARATOR;
30 |
31 | $outputFile = $QR_BASEDIR.'phpqrcode.php';
32 |
33 | // Required libs
34 |
35 | $fileList = array(
36 | $QR_BASEDIR.'qrconst.php',
37 | $QR_TOOLSDIR.'merged_config.php',
38 | $QR_BASEDIR.'qrtools.php',
39 | $QR_BASEDIR.'qrspec.php',
40 | $QR_BASEDIR.'qrimage.php',
41 | $QR_BASEDIR.'qrinput.php',
42 | $QR_BASEDIR.'qrbitstream.php',
43 | $QR_BASEDIR.'qrsplit.php',
44 | $QR_BASEDIR.'qrrscode.php',
45 | $QR_BASEDIR.'qrmask.php',
46 | $QR_BASEDIR.'qrencode.php'
47 | );
48 |
49 | $headerFile = $QR_TOOLSDIR.'merged_header.php';
50 | $versionFile = $QR_BASEDIR.'VERSION';
51 |
52 | $outputCode = '';
53 |
54 | foreach($fileList as $fileName) {
55 | $outputCode .= "\n\n".'//---- '.basename($fileName).' -----------------------------'."\n\n";
56 | $anotherCode = file_get_contents($fileName);
57 | $anotherCode = preg_replace ('/^<\?php/', '', $anotherCode);
58 | $anotherCode = preg_replace ('/\?>\*$/', '', $anotherCode);
59 | $outputCode .= "\n\n".$anotherCode."\n\n";
60 | }
61 |
62 | $versionDataEx = explode("\n", file_get_contents($versionFile));
63 |
64 | $outputContents = file_get_contents($headerFile);
65 | $outputContents .= "\n\n/*\n * Version: ".trim($versionDataEx[0])."\n * Build: ".trim($versionDataEx[1])."\n */\n\n";
66 | $outputContents .= $outputCode;
67 |
68 | file_put_contents($outputFile, $outputContents);
69 |
70 |
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/tools/merge.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | php ./merge.php
--------------------------------------------------------------------------------
/modules/addons/oath/phpqrcode/tools/merged_config.php:
--------------------------------------------------------------------------------
1 |
20 | *
21 | * This library is free software; you can redistribute it and/or
22 | * modify it under the terms of the GNU Lesser General Public
23 | * License as published by the Free Software Foundation; either
24 | * version 3 of the License, or any later version.
25 | *
26 | * This library is distributed in the hope that it will be useful,
27 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
28 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
29 | * Lesser General Public License for more details.
30 | *
31 | * You should have received a copy of the GNU Lesser General Public
32 | * License along with this library; if not, write to the Free Software
33 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
34 | */
35 |
36 |
--------------------------------------------------------------------------------