v0.30.5
Browse filesSee https://github.com/quic/ai-hub-models/releases/v0.30.5 for changelog.
- FFNet-54S_w8a8.onnx +2 -2
- README.md +51 -51
FFNet-54S_w8a8.onnx
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0a0265415747b87bc77e5595d912d72cae95cbe42689a7b49dc8ca89c881b105
|
| 3 |
+
size 72347392
|
README.md
CHANGED
|
@@ -36,53 +36,53 @@ More details on model performance across various devices, can be found
|
|
| 36 |
|
| 37 |
| Model | Precision | Device | Chipset | Target Runtime | Inference Time (ms) | Peak Memory Range (MB) | Primary Compute Unit | Target Model
|
| 38 |
|---|---|---|---|---|---|---|---|---|
|
| 39 |
-
| FFNet-54S | float | QCS8275 (Proxy) | Qualcomm® QCS8275 (Proxy) | TFLITE |
|
| 40 |
-
| FFNet-54S | float | QCS8275 (Proxy) | Qualcomm® QCS8275 (Proxy) | QNN |
|
| 41 |
-
| FFNet-54S | float | QCS8450 (Proxy) | Qualcomm® QCS8450 (Proxy) | TFLITE |
|
| 42 |
-
| FFNet-54S | float | QCS8450 (Proxy) | Qualcomm® QCS8450 (Proxy) | QNN |
|
| 43 |
-
| FFNet-54S | float | QCS8550 (Proxy) | Qualcomm® QCS8550 (Proxy) | TFLITE | 46.
|
| 44 |
-
| FFNet-54S | float | QCS8550 (Proxy) | Qualcomm® QCS8550 (Proxy) | QNN | 36.
|
| 45 |
-
| FFNet-54S | float | QCS9075 (Proxy) | Qualcomm® QCS9075 (Proxy) | TFLITE | 62.
|
| 46 |
-
| FFNet-54S | float | QCS9075 (Proxy) | Qualcomm® QCS9075 (Proxy) | QNN |
|
| 47 |
-
| FFNet-54S | float | SA7255P ADP | Qualcomm® SA7255P | TFLITE |
|
| 48 |
-
| FFNet-54S | float | SA7255P ADP | Qualcomm® SA7255P | QNN |
|
| 49 |
-
| FFNet-54S | float | SA8255 (Proxy) | Qualcomm® SA8255P (Proxy) | TFLITE | 46.
|
| 50 |
-
| FFNet-54S | float | SA8255 (Proxy) | Qualcomm® SA8255P (Proxy) | QNN | 36.
|
| 51 |
-
| FFNet-54S | float | SA8295P ADP | Qualcomm® SA8295P | TFLITE |
|
| 52 |
-
| FFNet-54S | float | SA8295P ADP | Qualcomm® SA8295P | QNN |
|
| 53 |
-
| FFNet-54S | float | SA8650 (Proxy) | Qualcomm® SA8650P (Proxy) | TFLITE | 46.
|
| 54 |
-
| FFNet-54S | float | SA8650 (Proxy) | Qualcomm® SA8650P (Proxy) | QNN | 36.
|
| 55 |
-
| FFNet-54S | float | SA8775P ADP | Qualcomm® SA8775P | TFLITE | 62.
|
| 56 |
-
| FFNet-54S | float | SA8775P ADP | Qualcomm® SA8775P | QNN |
|
| 57 |
-
| FFNet-54S | float | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 Mobile | TFLITE |
|
| 58 |
-
| FFNet-54S | float | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 Mobile | QNN | 36.
|
| 59 |
-
| FFNet-54S | float | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 Mobile | ONNX |
|
| 60 |
-
| FFNet-54S | float | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 Mobile | TFLITE |
|
| 61 |
-
| FFNet-54S | float | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 Mobile | QNN | 25.
|
| 62 |
-
| FFNet-54S | float | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 Mobile | ONNX |
|
| 63 |
-
| FFNet-54S | float | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite Mobile | TFLITE |
|
| 64 |
-
| FFNet-54S | float | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite Mobile | QNN |
|
| 65 |
-
| FFNet-54S | float | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite Mobile | ONNX |
|
| 66 |
-
| FFNet-54S | float | Snapdragon X Elite CRD | Snapdragon® X Elite | QNN | 37.
|
| 67 |
-
| FFNet-54S | float | Snapdragon X Elite CRD | Snapdragon® X Elite | ONNX |
|
| 68 |
-
| FFNet-54S | w8a8 | QCS8275 (Proxy) | Qualcomm® QCS8275 (Proxy) | TFLITE |
|
| 69 |
-
| FFNet-54S | w8a8 | QCS8450 (Proxy) | Qualcomm® QCS8450 (Proxy) | TFLITE |
|
| 70 |
-
| FFNet-54S | w8a8 | QCS8550 (Proxy) | Qualcomm® QCS8550 (Proxy) | TFLITE | 9.
|
| 71 |
-
| FFNet-54S | w8a8 | QCS9075 (Proxy) | Qualcomm® QCS9075 (Proxy) | TFLITE | 10.
|
| 72 |
-
| FFNet-54S | w8a8 | RB3 Gen 2 (Proxy) | Qualcomm® QCS6490 (Proxy) | TFLITE |
|
| 73 |
-
| FFNet-54S | w8a8 | RB5 (Proxy) | Qualcomm® QCS8250 (Proxy) | TFLITE |
|
| 74 |
-
| FFNet-54S | w8a8 | SA7255P ADP | Qualcomm® SA7255P | TFLITE |
|
| 75 |
-
| FFNet-54S | w8a8 | SA8255 (Proxy) | Qualcomm® SA8255P (Proxy) | TFLITE | 9.
|
| 76 |
-
| FFNet-54S | w8a8 | SA8295P ADP | Qualcomm® SA8295P | TFLITE | 14.
|
| 77 |
-
| FFNet-54S | w8a8 | SA8650 (Proxy) | Qualcomm® SA8650P (Proxy) | TFLITE | 9.
|
| 78 |
-
| FFNet-54S | w8a8 | SA8775P ADP | Qualcomm® SA8775P | TFLITE | 10.
|
| 79 |
-
| FFNet-54S | w8a8 | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 Mobile | TFLITE | 9.
|
| 80 |
-
| FFNet-54S | w8a8 | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 Mobile | ONNX | 11.
|
| 81 |
-
| FFNet-54S | w8a8 | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 Mobile | TFLITE | 6.
|
| 82 |
-
| FFNet-54S | w8a8 | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 Mobile | ONNX | 7.
|
| 83 |
-
| FFNet-54S | w8a8 | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite Mobile | TFLITE |
|
| 84 |
-
| FFNet-54S | w8a8 | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite Mobile | ONNX | 6.
|
| 85 |
-
| FFNet-54S | w8a8 | Snapdragon X Elite CRD | Snapdragon® X Elite | ONNX | 14.
|
| 86 |
|
| 87 |
|
| 88 |
|
|
@@ -146,8 +146,8 @@ Profiling Results
|
|
| 146 |
FFNet-54S
|
| 147 |
Device : cs_8275 (ANDROID 14)
|
| 148 |
Runtime : TFLITE
|
| 149 |
-
Estimated inference time (ms) :
|
| 150 |
-
Estimated peak memory usage (MB): [
|
| 151 |
Total # Ops : 115
|
| 152 |
Compute Unit(s) : npu (115 ops) gpu (0 ops) cpu (0 ops)
|
| 153 |
```
|
|
@@ -236,13 +236,13 @@ AI Hub. [Sign up for access](https://myaccount.qualcomm.com/signup).
|
|
| 236 |
You can also run the demo on-device.
|
| 237 |
|
| 238 |
```bash
|
| 239 |
-
python -m qai_hub_models.models.ffnet_54s.demo --on-device
|
| 240 |
```
|
| 241 |
|
| 242 |
**NOTE**: If you want running in a Jupyter Notebook or Google Colab like
|
| 243 |
environment, please add the following to your cell (instead of the above).
|
| 244 |
```
|
| 245 |
-
%run -m qai_hub_models.models.ffnet_54s.demo -- --on-device
|
| 246 |
```
|
| 247 |
|
| 248 |
|
|
|
|
| 36 |
|
| 37 |
| Model | Precision | Device | Chipset | Target Runtime | Inference Time (ms) | Peak Memory Range (MB) | Primary Compute Unit | Target Model
|
| 38 |
|---|---|---|---|---|---|---|---|---|
|
| 39 |
+
| FFNet-54S | float | QCS8275 (Proxy) | Qualcomm® QCS8275 (Proxy) | TFLITE | 169.84 ms | 0 - 60 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S.tflite) |
|
| 40 |
+
| FFNet-54S | float | QCS8275 (Proxy) | Qualcomm® QCS8275 (Proxy) | QNN | 995.171 ms | 24 - 33 MB | NPU | Use Export Script |
|
| 41 |
+
| FFNet-54S | float | QCS8450 (Proxy) | Qualcomm® QCS8450 (Proxy) | TFLITE | 60.496 ms | 2 - 97 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S.tflite) |
|
| 42 |
+
| FFNet-54S | float | QCS8450 (Proxy) | Qualcomm® QCS8450 (Proxy) | QNN | 69.677 ms | 24 - 81 MB | NPU | Use Export Script |
|
| 43 |
+
| FFNet-54S | float | QCS8550 (Proxy) | Qualcomm® QCS8550 (Proxy) | TFLITE | 46.415 ms | 2 - 19 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S.tflite) |
|
| 44 |
+
| FFNet-54S | float | QCS8550 (Proxy) | Qualcomm® QCS8550 (Proxy) | QNN | 36.682 ms | 24 - 27 MB | NPU | Use Export Script |
|
| 45 |
+
| FFNet-54S | float | QCS9075 (Proxy) | Qualcomm® QCS9075 (Proxy) | TFLITE | 62.242 ms | 2 - 63 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S.tflite) |
|
| 46 |
+
| FFNet-54S | float | QCS9075 (Proxy) | Qualcomm® QCS9075 (Proxy) | QNN | 52.133 ms | 24 - 34 MB | NPU | Use Export Script |
|
| 47 |
+
| FFNet-54S | float | SA7255P ADP | Qualcomm® SA7255P | TFLITE | 169.84 ms | 0 - 60 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S.tflite) |
|
| 48 |
+
| FFNet-54S | float | SA7255P ADP | Qualcomm® SA7255P | QNN | 995.171 ms | 24 - 33 MB | NPU | Use Export Script |
|
| 49 |
+
| FFNet-54S | float | SA8255 (Proxy) | Qualcomm® SA8255P (Proxy) | TFLITE | 46.169 ms | 2 - 27 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S.tflite) |
|
| 50 |
+
| FFNet-54S | float | SA8255 (Proxy) | Qualcomm® SA8255P (Proxy) | QNN | 36.592 ms | 24 - 26 MB | NPU | Use Export Script |
|
| 51 |
+
| FFNet-54S | float | SA8295P ADP | Qualcomm® SA8295P | TFLITE | 67.83 ms | 2 - 61 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S.tflite) |
|
| 52 |
+
| FFNet-54S | float | SA8295P ADP | Qualcomm® SA8295P | QNN | 56.819 ms | 24 - 41 MB | NPU | Use Export Script |
|
| 53 |
+
| FFNet-54S | float | SA8650 (Proxy) | Qualcomm® SA8650P (Proxy) | TFLITE | 46.34 ms | 2 - 18 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S.tflite) |
|
| 54 |
+
| FFNet-54S | float | SA8650 (Proxy) | Qualcomm® SA8650P (Proxy) | QNN | 36.689 ms | 24 - 26 MB | NPU | Use Export Script |
|
| 55 |
+
| FFNet-54S | float | SA8775P ADP | Qualcomm® SA8775P | TFLITE | 62.242 ms | 2 - 63 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S.tflite) |
|
| 56 |
+
| FFNet-54S | float | SA8775P ADP | Qualcomm® SA8775P | QNN | 52.133 ms | 24 - 34 MB | NPU | Use Export Script |
|
| 57 |
+
| FFNet-54S | float | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 Mobile | TFLITE | 45.986 ms | 5 - 24 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S.tflite) |
|
| 58 |
+
| FFNet-54S | float | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 Mobile | QNN | 36.722 ms | 24 - 46 MB | NPU | Use Export Script |
|
| 59 |
+
| FFNet-54S | float | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 Mobile | ONNX | 31.229 ms | 29 - 121 MB | NPU | [FFNet-54S.onnx](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S.onnx) |
|
| 60 |
+
| FFNet-54S | float | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 Mobile | TFLITE | 31.217 ms | 1 - 98 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S.tflite) |
|
| 61 |
+
| FFNet-54S | float | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 Mobile | QNN | 25.327 ms | 20 - 80 MB | NPU | Use Export Script |
|
| 62 |
+
| FFNet-54S | float | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 Mobile | ONNX | 22.177 ms | 28 - 109 MB | NPU | [FFNet-54S.onnx](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S.onnx) |
|
| 63 |
+
| FFNet-54S | float | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite Mobile | TFLITE | 32.056 ms | 1 - 63 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S.tflite) |
|
| 64 |
+
| FFNet-54S | float | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite Mobile | QNN | 23.657 ms | 24 - 94 MB | NPU | Use Export Script |
|
| 65 |
+
| FFNet-54S | float | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite Mobile | ONNX | 20.447 ms | 27 - 83 MB | NPU | [FFNet-54S.onnx](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S.onnx) |
|
| 66 |
+
| FFNet-54S | float | Snapdragon X Elite CRD | Snapdragon® X Elite | QNN | 37.943 ms | 24 - 24 MB | NPU | Use Export Script |
|
| 67 |
+
| FFNet-54S | float | Snapdragon X Elite CRD | Snapdragon® X Elite | ONNX | 33.222 ms | 24 - 24 MB | NPU | [FFNet-54S.onnx](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S.onnx) |
|
| 68 |
+
| FFNet-54S | w8a8 | QCS8275 (Proxy) | Qualcomm® QCS8275 (Proxy) | TFLITE | 124.886 ms | 1 - 40 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S_w8a8.tflite) |
|
| 69 |
+
| FFNet-54S | w8a8 | QCS8450 (Proxy) | Qualcomm® QCS8450 (Proxy) | TFLITE | 10.779 ms | 1 - 61 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S_w8a8.tflite) |
|
| 70 |
+
| FFNet-54S | w8a8 | QCS8550 (Proxy) | Qualcomm® QCS8550 (Proxy) | TFLITE | 9.501 ms | 1 - 13 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S_w8a8.tflite) |
|
| 71 |
+
| FFNet-54S | w8a8 | QCS9075 (Proxy) | Qualcomm® QCS9075 (Proxy) | TFLITE | 10.243 ms | 1 - 41 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S_w8a8.tflite) |
|
| 72 |
+
| FFNet-54S | w8a8 | RB3 Gen 2 (Proxy) | Qualcomm® QCS6490 (Proxy) | TFLITE | 62.394 ms | 1 - 98 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S_w8a8.tflite) |
|
| 73 |
+
| FFNet-54S | w8a8 | RB5 (Proxy) | Qualcomm® QCS8250 (Proxy) | TFLITE | 319.792 ms | 1 - 3 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S_w8a8.tflite) |
|
| 74 |
+
| FFNet-54S | w8a8 | SA7255P ADP | Qualcomm® SA7255P | TFLITE | 124.886 ms | 1 - 40 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S_w8a8.tflite) |
|
| 75 |
+
| FFNet-54S | w8a8 | SA8255 (Proxy) | Qualcomm® SA8255P (Proxy) | TFLITE | 9.513 ms | 1 - 16 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S_w8a8.tflite) |
|
| 76 |
+
| FFNet-54S | w8a8 | SA8295P ADP | Qualcomm® SA8295P | TFLITE | 14.709 ms | 1 - 43 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S_w8a8.tflite) |
|
| 77 |
+
| FFNet-54S | w8a8 | SA8650 (Proxy) | Qualcomm® SA8650P (Proxy) | TFLITE | 9.643 ms | 1 - 13 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S_w8a8.tflite) |
|
| 78 |
+
| FFNet-54S | w8a8 | SA8775P ADP | Qualcomm® SA8775P | TFLITE | 10.243 ms | 1 - 41 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S_w8a8.tflite) |
|
| 79 |
+
| FFNet-54S | w8a8 | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 Mobile | TFLITE | 9.59 ms | 0 - 14 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S_w8a8.tflite) |
|
| 80 |
+
| FFNet-54S | w8a8 | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 Mobile | ONNX | 11.216 ms | 6 - 43 MB | NPU | [FFNet-54S.onnx](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S_w8a8.onnx) |
|
| 81 |
+
| FFNet-54S | w8a8 | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 Mobile | TFLITE | 6.933 ms | 1 - 60 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S_w8a8.tflite) |
|
| 82 |
+
| FFNet-54S | w8a8 | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 Mobile | ONNX | 7.506 ms | 6 - 78 MB | NPU | [FFNet-54S.onnx](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S_w8a8.onnx) |
|
| 83 |
+
| FFNet-54S | w8a8 | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite Mobile | TFLITE | 6.792 ms | 1 - 45 MB | NPU | [FFNet-54S.tflite](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S_w8a8.tflite) |
|
| 84 |
+
| FFNet-54S | w8a8 | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite Mobile | ONNX | 6.702 ms | 6 - 65 MB | NPU | [FFNet-54S.onnx](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S_w8a8.onnx) |
|
| 85 |
+
| FFNet-54S | w8a8 | Snapdragon X Elite CRD | Snapdragon® X Elite | ONNX | 14.353 ms | 13 - 13 MB | NPU | [FFNet-54S.onnx](https://huggingface.co/qualcomm/FFNet-54S/blob/main/FFNet-54S_w8a8.onnx) |
|
| 86 |
|
| 87 |
|
| 88 |
|
|
|
|
| 146 |
FFNet-54S
|
| 147 |
Device : cs_8275 (ANDROID 14)
|
| 148 |
Runtime : TFLITE
|
| 149 |
+
Estimated inference time (ms) : 169.8
|
| 150 |
+
Estimated peak memory usage (MB): [0, 60]
|
| 151 |
Total # Ops : 115
|
| 152 |
Compute Unit(s) : npu (115 ops) gpu (0 ops) cpu (0 ops)
|
| 153 |
```
|
|
|
|
| 236 |
You can also run the demo on-device.
|
| 237 |
|
| 238 |
```bash
|
| 239 |
+
python -m qai_hub_models.models.ffnet_54s.demo --eval-mode on-device
|
| 240 |
```
|
| 241 |
|
| 242 |
**NOTE**: If you want running in a Jupyter Notebook or Google Colab like
|
| 243 |
environment, please add the following to your cell (instead of the above).
|
| 244 |
```
|
| 245 |
+
%run -m qai_hub_models.models.ffnet_54s.demo -- --eval-mode on-device
|
| 246 |
```
|
| 247 |
|
| 248 |
|