Object Detection on COCO (minival)
57.6mAPFrozen-DETR (Co-DINO-4scale)*
Evaluation Results
| Method | Links | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Frozen-DETR (Co-DINO-4scale)*Backbone=Swin-B(22k), #Epochs=12, GFLOPS=732, FPS=3.8, input size of foundation model=4482024.10 | 57.6 | 75.8 | 63.2 | 41.4 | 61.7 | 74.3 | — | — | — | — | — | — | |
| Co-DINO-4scaleBackbone=Swin-B(22k), #Epochs=12, GFLOPS=513, FPS=6.22024.10 | 56.8 | 74.9 | 62.5 | 41.7 | 60.9 | 72.8 | — | — | — | — | — | — | |
| Frozen-DETR (DDQ with HPR)Backbone=R50, #Epochs=12, GFLOPS=467, FPS=5.22024.10 | 55.7 | 73.9 | 61.3 | 38.4 | 58.8 | 72.3 | — | — | — | — | — | — | |
| Frozen-DETR (Co-DINO-4scale)Backbone=R50, #Epochs=24, GFLOPS=400, FPS=6.52024.10 | 54.3 | 72.9 | 59.2 | 36.6 | 58 | 72.1 | — | — | — | — | — | — | |
| Frozen-DETR (Co-DINO-4scale)Backbone=R50, #Epochs=12, GFLOPS=400, FPS=6.52024.10 | 54 | 72.4 | 59.1 | 36 | 58 | 71.5 | — | — | — | — | — | — | |
| Frozen-DETR (DINO-det-4scale)Backbone=R50, #Epochs=24, GFLOPS=400, FPS=6.52024.10 | 53.2 | — | 58 | 35.1 | 56.5 | 70.6 | — | — | — | — | — | — | |
| Frozen-DETR (MS-DETR)Backbone=R50, #Epochs=12, GFLOPS=423, FPS=6.92024.10 | 53 | 71.5 | 57.8 | 35.1 | 55.8 | 70.8 | — | — | — | — | — | — | |
| DDQ with HPRBackbone=R50, #Epochs=12, GFLOPS=283, FPS=6.52024.10 | 52.4 | 69.9 | 57.5 | 35.9 | 55.5 | 66.7 | — | — | — | — | — | — | |
| Co-DINO-5scaleBackbone=R50, #Epochs=12, GFLOPS=860, FPS=4.42024.10 | 52.1 | 69.4 | 57.1 | 35.4 | 55.4 | 65.8 | — | — | — | — | — | — | |
| DDQ DETR 4scaleBackbone=R50, #Epochs=24, GFLOPS=249, FPS=8.62024.10 | 52 | 69.5 | 57.2 | 35.2 | 54.9 | 65.9 | — | — | — | — | — | — | |
| Frozen-DETR (DINO-det-4scale)Backbone=R50, #Epochs=12, GFLOPS=400, FPS=6.52024.10 | 51.9 | 70.4 | 56.7 | 33.8 | 54.9 | 69.3 | — | — | — | — | — | — | |
| AdaMixerbackbone=Swin-S, encoder=null, #epochs=36, GFLOPS=2342022.03 | 51.3 | 71.2 | 55.7 | 34.2 | 54.6 | 67.3 | — | — | — | — | — | — | |
| Group DETR (DINO-det-4scale)Backbone=R50, #Epochs=36, GFLOPS=279, FPS=9.72024.10 | 51.3 | — | — | 34.7 | 54.5 | 65.3 | — | — | — | — | — | — | |
| DINO-det-5scaleBackbone=R50, #Epochs=24, GFLOPS=860, FPS=4.42024.10 | 51.3 | 69.1 | 56 | 34.5 | 54.2 | 65.8 | — | — | — | — | — | — | |
| DAC-DETRBackbone=R50, #Epochs=24, GFLOPS=279, FPS=9.72024.10 | 51.2 | 68.9 | 56 | 34 | 54.6 | 65.4 | — | — | — | — | — | — | |
| DINO-det-4scaleBackbone=R50, #Epochs=24, GFLOPS=279, FPS=9.72024.10 | 50.4 | 68.3 | 54.8 | 33.3 | 53.7 | 64.8 | — | — | — | — | — | — | |
| H-Deformable-DETRBackbone=R50, #Epochs=36, GFLOPS=268, FPS=112024.10 | 50 | 68.3 | 54.4 | 32.9 | 52.7 | 65.3 | — | — | — | — | — | — | |
| MS-DETRBackbone=R50, #Epochs=12, GFLOPS=252, FPS=10.82024.10 | 50 | 67.3 | 54.4 | 31.6 | 53.2 | 64 | — | — | — | — | — | — | |
| BoTNet-200Backbone=BoT200, Epochs=72, Multi-scale jitter=[0.1, 2.0]2021.01 | 49.7 | 71.3 | 54.6 | — | — | — | — | — | — | — | — | — | |
| BoTNet-152Backbone=BoT152, Epochs=72, Multi-scale jitter=[0.1, 2.0]2021.01 | 49.5 | 71 | 54.2 | — | — | — | — | — | — | — | — | — | |
| AdaMixerbackbone=ResNeXt-101-DCN, encoder=null, #epochs=36, GFLOPS=2142022.03 | 49.5 | 68.9 | 53.9 | 31.3 | 52.3 | 66.3 | — | — | — | — | — | — | |
| DINO-det-4scaleBackbone=R50, #Epochs=12, GFLOPS=279, FPS=9.72024.10 | 49 | 66.6 | 53.5 | 32 | 52.3 | 63 | — | — | — | — | — | — | |
| AdaMixerbackbone=ResNet-101, encoder=null, #epochs=36, GFLOPS=2082022.03 | 48 | 67 | 52.4 | 30 | 51.2 | 63.7 | — | — | — | — | — | — | |
| AdaMixerbackbone=ResNet-50, encoder=null, #epochs=36, GFLOPS=1322022.03 | 47 | 66 | 51.1 | 30.1 | 50.2 | 61.8 | — | — | — | — | — | — | |
| AdaMixerBackbone=R50, #Epochs=36, GFLOPS=132, FPS=16.62024.10 | 47 | 66 | 51.1 | 30.1 | 50.2 | 61.8 | — | — | — | — | — | — | |
| AdaMixerbackbone=ResNet-50, encoder=null, #epochs=24, GFLOPS=1322022.03 | 46.7 | 65.9 | 50.5 | 29.7 | 49.7 | 61.5 | — | — | — | — | — | — | |
| GAIA 180-210BPre-train=GAIA, Scale=880, Depth=[3,4,25,4], Width=[48,48,96,256,384], FLOPs=209.8B, Latency=53ms, Scheduler=1x2021.06 | 46.41 | 67.98 | 50.88 | 29.83 | 50.83 | 58.32 | — | — | — | — | — | — | |
| Sparse R-CNNbackbone=ResNet-101, encoder=FPN, #epochs=36, GFLOPS=2502022.03 | 46.4 | 64.6 | 49.5 | 28.3 | 48.3 | 61.6 | — | — | — | — | — | — | |
| ResNet101Pre-train=GAIA, Scale=800, Depth=[3,4,23,3], Width=[64, 64, 128, 256, 512], FLOPs=188.5B, Latency=51ms, Scheduler=1x2021.06 | 46.07 | 67.28 | 50.64 | 29.31 | 50.45 | 58.5 | — | — | — | — | — | — | |
| GAIA 150-180BPre-train=GAIA, Scale=800, Depth=[3,4,23,3], Width=[64,64,96,256,512], FLOPs=178.7B, Latency=47ms, Scheduler=1x2021.06 | 46.02 | 67.4 | 50.52 | 28.8 | 50.37 | 59.01 | — | — | — | — | — | — | |
| Conditional DETRbackbone=ResNet-101-DC5, encoder=TransformerEnc, #epochs=108, GFLOPS=2622022.03 | 45.9 | 66.8 | 49.5 | 27.2 | 50.3 | 63.3 | — | — | — | — | — | — | |
| Efficient DETRbackbone=ResNet-101, encoder=DeformTransEnc, #epochs=36, GFLOPS=2892022.03 | 45.7 | 64.1 | 49.5 | 28.2 | 49.1 | 60.2 | — | — | — | — | — | — | |
| GAIA 135-150BPre-train=GAIA, Scale=800, Depth=[4,6,23,3], Width=[48,48,96,192,640], FLOPs=149.1B, Latency=44ms, Scheduler=1x2021.06 | 45.55 | 66.89 | 50.08 | 28.96 | 49.94 | 58.01 | — | — | — | — | — | — | |
| GAIA 120-135BPre-train=GAIA, Scale=720, Depth=[3,4,23,3], Width=[64,64,128,192,640], FLOPs=133.9B, Latency=38ms, Scheduler=1x2021.06 | 45.27 | 66.64 | 49.47 | 27.97 | 49.44 | 57.89 | — | — | — | — | — | — | |
| Efficient DETRbackbone=ResNet-50, encoder=DeformTransEnc, #epochs=36, GFLOPS=2102022.03 | 45.1 | 63.1 | 49.1 | 28.3 | 48.4 | 59 | — | — | — | — | — | — | |
| Conditional DETRbackbone=ResNet-50-DC5, encoder=TransformerEnc, #epochs=108, GFLOPS=1952022.03 | 45.1 | 65.4 | 48.5 | 25.3 | 49 | 62.2 | — | — | — | — | — | — | |
| Sparse R-CNNbackbone=ResNet-50, encoder=FPN, #epochs=36, GFLOPS=1742022.03 | 45 | 63.4 | 48.2 | 26.9 | 47.2 | 59.5 | — | — | — | — | — | — | |
| Sparse R-CNNBackbone=R50, #Epochs=36, GFLOPS=174, FPS=17.82024.10 | 45 | 63.4 | 48.2 | 26.9 | 47.2 | 59.5 | — | — | — | — | — | — | |
| Mask R-CNNBackbone=Conformer-S/16, Input size=(1120, 800), #Params=56.9 M, GFLOPs=457.72021.05 | 44.9 | — | — | 28.7 | 48.8 | 58.6 | — | — | — | — | — | — | |
| DETRbackbone=ResNet-101-DC5, encoder=TransformerEnc, #epochs=500, GFLOPS=2532022.03 | 44.9 | 64.7 | 47.7 | 23.7 | 49.5 | 62.3 | — | — | — | — | — | — | |
| GFL-R101 (T)Backbone=ResNet-101, Role=Teacher, Training Schedule=2x2023.06 | 44.9 | 63.1 | 49 | 28 | 49.1 | 57.2 | — | — | — | — | — | — | |
| GAIA 105-120BPre-train=GAIA, Scale=640, Depth=[4,6,21,4], Width=[64,80,160,192,512], FLOPs=119.2B, Latency=33ms, Scheduler=1x2021.06 | 44.46 | 65.71 | 47.49 | 26.77 | 48.31 | 57.21 | — | — | — | — | — | — | |
| SMCAbackbone=ResNet-101, encoder=TransformerEnc, #epochs=50, GFLOPS=2182022.03 | 44.4 | 65.2 | 48 | 24.3 | 48.5 | 61 | — | — | — | — | — | — | |
| Frozen-DETR (DN-DETR-DC5)Backbone=R50, #Epochs=12, GFLOPS=372, FPS=8.52024.10 | 44.4 | 64.8 | 47.7 | 23.8 | 47.7 | 64.6 | — | — | — | — | — | — | |
| FPNBackbone=Conformer-S/16, Input size=(1120, 800), #Params=54.2 M, GFLOPs=404.62021.05 | 44.2 | — | — | 28.5 | 48.1 | 58.4 | — | — | — | — | — | — | |
| Anchor DETRbackbone=ResNet-50-DC5, encoder=DecoupTransEnc, #epochs=50, GFLOPS=1512022.03 | 44.2 | — | 47.5 | 24.7 | 48.2 | 60.6 | — | — | — | — | — | — | |
| AdaMixerbackbone=ResNet-50, encoder=null, #epochs=12, GFLOPS=1322022.03 | 44.1 | 63.1 | 47.8 | 29.5 | 47 | 58.8 | — | — | — | — | — | — | |
| GAIA 90-105BPre-train=GAIA, Scale=560, Depth=[4,6,21,4], Width=[64,80,160,192,512], FLOPs=101.1B, Latency=30ms, Scheduler=1x2021.06 | 44.05 | 65.15 | 47.91 | 25.55 | 48.69 | 59.09 | — | — | — | — | — | — | |
| CrossKD+PKDStudent Backbone=ResNet-50, Teacher Backbone=ResNet-101, Framework=GFL, Training Schedule=1x2023.06 | 43.9 | 62 | 47.7 | 26.4 | 48.5 | 57 | — | — | — | — | — | — | |
| Deformable DETRbackbone=ResNet-50, encoder=DeformTransEnc, #epochs=50, GFLOPS=1732022.03 | 43.8 | 62.6 | 47.7 | 26.4 | 47.1 | 58 | — | — | — | — | — | — | |
| Deformable DETRBackbone=R50, #Epochs=50, GFLOPS=173, FPS=13.42024.10 | 43.8 | 62.6 | 47.7 | 26.4 | 47.1 | 58 | — | — | — | — | — | — | |
| SMCAbackbone=ResNet-50, encoder=TransformerEnc, #epochs=50, GFLOPS=1522022.03 | 43.7 | 63.6 | 47.2 | 24.2 | 47 | 60.4 | — | — | — | — | — | — | |
| CrossKDStudent Backbone=ResNet-50, Teacher Backbone=ResNet-101, Framework=GFL, Training Schedule=1x2023.06 | 43.7 | 62.1 | 47.4 | 26.9 | 48 | 56.2 | — | — | — | — | — | — | |
| Mask R-CNNBackbone=Conformer-S/32, Input size=(1344, 800), #Params=58.1 M, GFLOPs=341.42021.05 | 43.6 | — | — | 27.5 | 46.9 | 56.5 | — | — | — | — | — | — | |
| GAIA 75-90BPre-train=GAIA, Scale=560, Depth=[4,6,21,4], Width=[64,80,96,192,512], FLOPs=88.1B, Latency=28ms, Scheduler=1x2021.06 | 43.6 | 64.81 | 47.34 | 24.97 | 47.85 | 58.62 | — | — | — | — | — | — | |
| DETRbackbone=ResNet-50-DC5, encoder=TransformerEnc, #epochs=500, GFLOPS=1872022.03 | 43.3 | 63.1 | 45.9 | 22.5 | 47.3 | 61.1 | — | — | — | — | — | — | |
| PKDStudent Backbone=ResNet-50, Teacher Backbone=ResNet-101, Framework=GFL, Training Schedule=1x2023.06 | 43.3 | 61.3 | 46.9 | 25.2 | 47.9 | 56.2 | — | — | — | — | — | — | |
| DETRBackbone=R50, #Epochs=500, GFLOPS=86, FPS=27.82024.10 | 43.3 | 63.1 | 45.9 | 22.5 | 47.3 | 61.1 | — | — | — | — | — | — | |
| Region Uncertainty QuantificationLabeled=coco-115, Unlabeled=coco-120, schedule=3x, strong data augmentation=true2021.11 | 43.2 | 62 | 47.5 | — | — | — | — | — | — | — | — | — | |
| FPNBackbone=Conformer-S/32, Input size=(1344, 800), #Params=55.4 M, GFLOPs=288.42021.05 | 43.1 | — | — | 26.8 | 46.5 | 55.8 | — | — | — | — | — | — | |
| LDStudent Backbone=ResNet-50, Teacher Backbone=ResNet-101, Framework=GFL, Training Schedule=1x2023.06 | 43 | 61.6 | 46.6 | 25.5 | 47 | 55.8 | — | — | — | — | — | — | |
| ResNet50Pre-train=GAIA, Scale=800, Depth=[3,4,6,3], Width=[64, 64, 128, 256, 512], FLOPs=137.4B, Latency=39ms, Scheduler=1x2021.06 | 42.91 | 64.43 | 47.12 | 28.01 | 47.07 | 53.81 | — | — | — | — | — | — | |
| GAIA 60-75BPre-train=GAIA, Scale=560, Depth=[4,6,15,4], Width=[48,80,96,192,512], FLOPs=74.4B, Latency=26ms, Scheduler=1x2021.06 | 42.59 | 64.01 | 46.07 | 24.82 | 46.78 | 57.42 | — | — | — | — | — | — | |
| Auto-FPNbackbone=ResNet-101, b&w=false2020.03 | 42.5 | — | — | — | — | — | — | — | — | — | — | — | |
| Humble teacherLabeled=coco-115, Unlabeled=coco-120, strong data augmentation=true2021.11 | 42.4 | — | — | — | — | — | — | — | — | — | — | — | |
| SKDStudent Backbone=ResNet-50, Teacher Backbone=ResNet-101, Framework=GFL, Training Schedule=1x2023.06 | 42.3 | 60.2 | 45.9 | 24.4 | 46.7 | 55.6 | — | — | — | — | — | — | |
| Frozen-DETR (DAB-DETR-DC5)Backbone=R50, #Epochs=12, GFLOPS=372, FPS=8.52024.10 | 42 | 63.2 | 44.9 | 22.4 | 45.4 | 61.1 | — | — | — | — | — | — | |
| Double-Head-Extbackbone=ResNet-101, b&w=false2020.03 | 41.9 | 62.4 | 45.9 | 23.9 | 45.2 | 55.8 | — | — | — | — | — | — | |
| CrossKDBackbone=ResNet-50, Architecture=ATSS, Teacher Backbone=ResNet-1012023.06 | 41.8 | 60.1 | 45.4 | 24.9 | 45.9 | 54.2 | — | — | — | — | — | — | |
| ResNet101Pre-train=ImageNet, Scale=800, Depth=[3,4,23,3], Width=[64, 64, 128, 256, 512], FLOPs=188.5B, Latency=51ms, Scheduler=3x2021.06 | 41.75 | 62.24 | 45.77 | 25.28 | 45.61 | 54.39 | — | — | — | — | — | — | |
| Region Uncertainty QuantificationLabeled=coco-115, Unlabeled=coco-120, schedule=3x2021.11 | 41.7 | 61 | 45.9 | — | — | — | — | — | — | — | — | — | |
| DN-DETR-DC5Backbone=R50, #Epochs=12, GFLOPS=220, FPS=10.2, single-scale detector uses standard attention=true2024.10 | 41.7 | 61.4 | 44.1 | 21.2 | 45 | 60.2 | — | — | — | — | — | — | |
| ATSSBackbone=ResNet-101, Role=Teacher2023.06 | 41.5 | 59.9 | 45.2 | 24.2 | 45.9 | 53.3 | — | — | — | — | — | — | |
| GIDStudent Backbone=ResNet-50, Teacher Backbone=ResNet-101, Framework=GFL, Training Schedule=1x2023.06 | 41.5 | 59.6 | 45.2 | 24.3 | 45.7 | 53.6 | — | — | — | — | — | — | |
| Grid R-CNN w FPNbackbone=ResNet-1012018.11 | 41.3 | 60.3 | 44.4 | 23.4 | 45.8 | 54.1 | — | — | — | — | — | — | |
| UbteacherLabeled=coco-115, Unlabeled=coco-120, strong data augmentation=true2021.11 | 41.3 | — | — | — | — | — | — | — | — | — | — | — | |
| CrossKDBackbone=ResNet-50, Architecture=FCOS, Teacher Backbone=ResNet-1012023.06 | 41.3 | 60.6 | 44.2 | 25.1 | 45.5 | 52.4 | — | — | — | — | — | — | |
| FGDStudent Backbone=ResNet-50, Teacher Backbone=ResNet-101, Framework=GFL, Training Schedule=1x2023.06 | 41.3 | 58.8 | 44.8 | 24.5 | 45.6 | 53 | — | — | — | — | — | — | |
| Main RegionStudent Backbone=ResNet-50, Teacher Backbone=ResNet-101, Framework=GFL, Training Schedule=1x2023.06 | 41.1 | 58.7 | 44.4 | 24.1 | 44.6 | 53.6 | — | — | — | — | — | — | |
| Fine-GrainedStudent Backbone=ResNet-50, Teacher Backbone=ResNet-101, Framework=GFL, Training Schedule=1x2023.06 | 41.1 | 58.8 | 44.8 | 23.3 | 45.4 | 53.1 | — | — | — | — | — | — | |
| R101 GNBackbone=ResNet-101, Normalization=Group Normalization (GN), Training protocol=from scratch2018.03 | 41 | 61.1 | 44.9 | — | — | — | — | — | — | — | — | — | |
| FCOSBackbone=ResNet-101, Role=Teacher2023.06 | 40.8 | 60 | 44 | 24.2 | 44.3 | 52.4 | — | — | — | — | — | — | |
| DefeatStudent Backbone=ResNet-50, Teacher Backbone=ResNet-101, Framework=GFL, Training Schedule=1x2023.06 | 40.8 | 58.6 | 44.2 | 24.3 | 44.6 | 53.7 | — | — | — | — | — | — | |
| FitNetsStudent Backbone=ResNet-50, Teacher Backbone=ResNet-101, Framework=GFL, Training Schedule=1x2023.06 | 40.7 | 58.6 | 44 | 23.7 | 44.4 | 53.2 | — | — | — | — | — | — | |
| Inside GT BoxStudent Backbone=ResNet-50, Teacher Backbone=ResNet-101, Framework=GFL, Training Schedule=1x2023.06 | 40.7 | 58.6 | 44.2 | 23.1 | 44.5 | 53.5 | — | — | — | — | — | — | |
| IoU-Netbackbone=ResNet-101, b&w=false2020.03 | 40.6 | 59 | — | — | — | — | — | — | — | — | — | — | |
| Region Uncertainty QuantificationLabeled=coco-115, Unlabeled=coco-120, schedule=1x2021.11 | 40.6 | 59.7 | 44.4 | — | — | — | — | — | — | — | — | — | |
| GAIA 45-60BPre-train=GAIA, Scale=480, Depth=[4,6,8,4], Width=[48,48,96,256,384], FLOPs=59.4B, Latency=19ms, Scheduler=1x2021.06 | 40.44 | 61.07 | 43.77 | 21.65 | 43.66 | 55.96 | — | — | — | — | — | — | |
| Instant-teachingLabeled=coco-115, Unlabeled=coco-120, strong data augmentation=true2021.11 | 40.2 | — | — | — | — | — | — | — | — | — | — | — | |
| GFL-R50 (S)Backbone=ResNet-50, Role=Student, Training Schedule=1x2023.06 | 40.2 | 58.4 | 43.3 | 23.3 | 44 | 52.2 | — | — | — | — | — | — | |
| Mask R-CNNBackbone=ResNet-101†, Input size=(1333, 800), #Params=63.2 M, GFLOPs=348.82021.05 | 40 | — | — | 22.6 | 44 | 52.6 | — | — | — | — | — | — | |
| ResNet50Pre-train=ImageNet, Scale=800, Depth=[3,4,6,3], Width=[64, 64, 128, 256, 512], FLOPs=137.4B, Latency=39ms, Scheduler=3x2021.06 | 39.78 | 60.47 | 42.23 | 23.27 | 42.57 | 50.04 | — | — | — | — | — | — | |
| CrossKDBackbone=ResNet-50, Architecture=RetinaNet, Teacher Backbone=ResNet-1012023.06 | 39.7 | 58.9 | 42.5 | 22.4 | 43.6 | 52.8 | — | — | — | — | — | — | |
| Grid R-CNN w FPNbackbone=ResNet-502018.11 | 39.6 | 58.3 | 42.4 | 22.6 | 43.8 | 51.5 | — | — | — | — | — | — | |
| R50 GNBackbone=ResNet-50, Normalization=Group Normalization (GN), Training protocol=from scratch2018.03 | 39.5 | 59.8 | 43.6 | — | — | — | — | — | — | — | — | — | |
| Faster R-CNN w FPNbackbone=ResNet-1012018.11 | 39.5 | 61.2 | 43.1 | 22.7 | 43.7 | 50.8 | — | — | — | — | — | — | |
| ResNet101Pre-train=ImageNet, Scale=800, Depth=[3,4,23,3], Width=[64, 64, 128, 256, 512], FLOPs=188.5B, Latency=51ms, Scheduler=1x2021.06 | 39.41 | 61.62 | 43.04 | 24.42 | 43.61 | 50.53 | — | — | — | — | — | — | |
| FPNBackbone=ResNet-101†, Input size=(1333, 800), #Params=60.5 M, GFLOPs=295.72021.05 | 39.4 | — | — | 22.4 | 43.7 | 51.1 | — | — | — | — | — | — | |
| ATSSBackbone=ResNet-50, Role=Student2023.06 | 39.4 | 57.6 | 42.8 | 23.6 | 42.9 | 50.3 | — | — | — | — | — | — | |
| STACLabeled=coco-115, Unlabeled=coco-120, strong data augmentation=true2021.11 | 39.2 | — | — | — | — | — | — | — | — | — | — | — |