Date | 3/31/2024 | 12/31/2023 | 9/30/2023 | 6/30/2023 | 3/31/2023 | 12/31/2022 | 9/30/2022 | 6/30/2022 | 3/31/2022 | 12/31/2021 | 9/30/2021 | 6/30/2021 | 3/31/2021 | 12/31/2020 | 9/30/2020 | 6/30/2020 | 3/31/2020 | 12/31/2019 | 9/30/2019 | 6/30/2019 | 3/31/2019 | 12/31/2018 | 9/30/2018 | 6/30/2018 | 3/31/2018 | 12/31/2017 | 9/30/2017 | 6/30/2017 | 3/31/2017 | 12/31/2016 | 12/31/2015 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Cash and Cash Equivalents | $10,237,000.00 | $30,840,000.00 | $12,159,000.00 | $41,122,000.00 | $21,374,000.00 | $17,445,000.00 | $21,500,000.00 | $22,408,000.00 | $19,941,000.00 | $21,500,000.00 | $29,969,000.00 | $33,128,000.00 | $52,982,000.00 | $68,864,000.00 | $80,338,000.00 | $88,678,000.00 | $90,116,000.00 | $92,989,000.00 | $93,321,000.00 | $16,886,000.00 | $31,157,000.00 | $63,615,000.00 | $86,534,000.00 | $70,860,000.00 | $72,900,000.00 | $17,513,000.00 | $30,171,000.00 | $12,127,000.00 | $27,039,000.00 | $4,074,000.00 | -- |
Accounts Receivable Net Current | $90,968,000.00 | $88,449,000.00 | $85,103,000.00 | $94,935,000.00 | $98,498,000.00 | $105,300,000.00 | $103,881,000.00 | $88,245,000.00 | $79,744,000.00 | $64,025,000.00 | $58,579,000.00 | $58,888,000.00 | $48,139,000.00 | $41,235,000.00 | $34,805,000.00 | $39,376,000.00 | $92,645,000.00 | $96,889,000.00 | $118,428,000.00 | $169,450,000.00 | $159,245,000.00 | $154,783,000.00 | $162,437,000.00 | $140,968,000.00 | $116,080,000.00 | $99,565,000.00 | -- | -- | -- | -- | -- |
Inventory | $56,340,000.00 | $54,486,000.00 | $58,663,000.00 | $63,363,000.00 | $67,030,000.00 | $62,045,000.00 | $52,959,000.00 | $48,950,000.00 | $45,959,000.00 | $42,180,000.00 | $43,019,000.00 | $41,300,000.00 | $38,759,000.00 | $38,402,000.00 | $52,683,000.00 | $59,333,000.00 | $63,113,000.00 | $60,945,000.00 | $66,475,000.00 | $87,935,000.00 | $98,053,000.00 | $91,435,000.00 | $29,571,000.00 | -- | -- | $22,230,000.00 | -- | -- | -- | -- | -- |
Prepaid Expenses and Other Current Assets | $9,798,000.00 | $9,368,000.00 | $5,718,000.00 | $7,444,000.00 | $9,293,000.00 | $11,217,000.00 | $9,123,000.00 | $11,362,000.00 | $12,227,000.00 | $10,195,000.00 | $11,084,000.00 | $8,741,000.00 | $13,115,000.00 | $16,270,000.00 | $19,526,000.00 | $19,291,000.00 | $14,977,000.00 | $17,434,000.00 | $14,312,000.00 | $16,482,000.00 | $20,608,000.00 | $15,717,000.00 | $7,035,000.00 | $7,431,000.00 | $6,859,000.00 | $7,929,000.00 | -- | -- | -- | -- | -- |
Total Current Assets | $167,687,000.00 | $183,633,000.00 | $162,540,000.00 | $207,960,000.00 | $196,195,000.00 | $196,725,000.00 | $188,637,000.00 | $172,691,000.00 | $158,979,000.00 | $139,302,000.00 | $143,856,000.00 | $143,303,000.00 | $154,137,000.00 | $166,163,000.00 | $188,598,000.00 | $207,308,000.00 | $261,661,000.00 | $268,917,000.00 | $292,536,000.00 | $290,753,000.00 | $316,157,000.00 | $333,176,000.00 | $296,212,000.00 | $252,985,000.00 | $217,587,000.00 | $147,237,000.00 | -- | -- | -- | -- | -- |
Property Plant and Equipement | $81,232,000.00 | $82,366,000.00 | $83,979,000.00 | $87,358,000.00 | $87,650,000.00 | $89,717,000.00 | $75,658,000.00 | $77,993,000.00 | $81,808,000.00 | $86,958,000.00 | $83,749,000.00 | $88,493,000.00 | $96,530,000.00 | $102,429,000.00 | $108,986,000.00 | $115,258,000.00 | $121,148,000.00 | $128,604,000.00 | $198,879,000.00 | $220,575,000.00 | $221,134,000.00 | $211,644,000.00 | $257,447,000.00 | $248,803,000.00 | $253,066,000.00 | $259,039,000.00 | -- | -- | -- | -- | -- |
Intangible Assets Net | $87,633,000.00 | $90,429,000.00 | $93,258,000.00 | $96,153,000.00 | $99,049,000.00 | $101,945,000.00 | $105,840,000.00 | $108,736,000.00 | $112,504,000.00 | $116,408,000.00 | $120,312,000.00 | $124,341,000.00 | $128,432,000.00 | $132,524,000.00 | $136,615,000.00 | $140,706,000.00 | $144,822,000.00 | $148,991,000.00 | -- | -- | -- | -- | $57,892,000.00 | $59,749,000.00 | $61,645,000.00 | $63,545,000.00 | -- | -- | -- | -- | -- |
Goodwill | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | $296,196,000.00 | $316,469,000.00 | $307,804,000.00 | $307,804,000.00 | $307,804,000.00 | $93,756,000.00 | $93,756,000.00 | $93,756,000.00 | $93,756,000.00 | -- | -- | -- | $125,286,000.00 | -- |
Other Assets | $3,227,000.00 | $3,449,000.00 | $3,708,000.00 | $3,922,000.00 | $4,123,000.00 | $1,564,000.00 | $808,000.00 | $784,000.00 | $2,175,000.00 | $2,383,000.00 | $2,572,000.00 | $2,823,000.00 | $3,048,000.00 | $3,308,000.00 | $4,260,000.00 | $5,587,000.00 | $7,377,000.00 | $8,187,000.00 | $5,462,000.00 | $5,723,000.00 | $6,052,000.00 | $6,386,000.00 | $1,144,000.00 | $1,093,000.00 | $1,181,000.00 | $4,806,000.00 | -- | -- | -- | -- | -- |
Total Assets | $380,410,000.00 | $401,984,000.00 | $386,844,000.00 | $438,475,000.00 | $426,694,000.00 | $426,834,000.00 | $407,475,000.00 | $395,745,000.00 | $390,869,000.00 | $381,613,000.00 | $385,883,000.00 | $394,639,000.00 | $419,049,000.00 | $442,600,000.00 | $438,459,000.00 | $468,859,000.00 | $535,008,000.00 | $850,895,000.00 | $1,081,583,000.00 | $1,097,701,000.00 | $1,128,621,000.00 | $1,141,172,000.00 | $706,451,000.00 | $656,386,000.00 | $637,736,000.00 | $578,859,000.00 | -- | $578,859,000.00 | -- | -- | -- |
Accounts Payable | $38,828,000.00 | $33,379,000.00 | $22,897,000.00 | $37,518,000.00 | $37,489,000.00 | $42,211,000.00 | $38,145,000.00 | $35,470,000.00 | $29,887,000.00 | $28,680,000.00 | $23,713,000.00 | $28,597,000.00 | $21,385,000.00 | $18,140,000.00 | $10,022,000.00 | $11,114,000.00 | $28,291,000.00 | $35,490,000.00 | $32,027,000.00 | $38,993,000.00 | $47,688,000.00 | $46,132,000.00 | $49,497,000.00 | $39,002,000.00 | $36,446,000.00 | $29,643,000.00 | -- | -- | -- | -- | -- |
Accrued Liabilities | $22,804,000.00 | $36,171,000.00 | $24,862,000.00 | $35,905,000.00 | $25,268,000.00 | $28,391,000.00 | $29,374,000.00 | $22,980,000.00 | $29,606,000.00 | $18,519,000.00 | $29,455,000.00 | $17,805,000.00 | $24,547,000.00 | $17,139,000.00 | $23,236,000.00 | $16,056,000.00 | $29,098,000.00 | $24,730,000.00 | $40,473,000.00 | $30,820,000.00 | $44,033,000.00 | $61,434,000.00 | $44,600,000.00 | $25,871,000.00 | $22,383,000.00 | $14,687,000.00 | -- | -- | -- | -- | -- |
Total Current Liabilities | $423,724,000.00 | $437,614,000.00 | $412,960,000.00 | $451,887,000.00 | $438,035,000.00 | $450,341,000.00 | $439,560,000.00 | $442,064,000.00 | $436,235,000.00 | $420,880,000.00 | $410,615,000.00 | $404,370,000.00 | $404,966,000.00 | $422,191,000.00 | $384,860,000.00 | $398,909,000.00 | $443,157,000.00 | $461,018,000.00 | $474,804,000.00 | $473,392,000.00 | $513,154,000.00 | $546,349,000.00 | $215,821,000.00 | $184,206,000.00 | $178,296,000.00 | $291,501,000.00 | -- | -- | -- | -- | -- |
Long Term Debt | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | $318,305,000.00 | $318,170,000.00 | $317,754,000.00 | $343,558,000.00 | $343,880,000.00 | $366,195,000.00 | $379,007,000.00 | $392,059,000.00 | $391,539,000.00 | $391,018,000.00 | $405,498,000.00 | $424,978,000.00 | $114,048,000.00 | $113,879,000.00 | $113,710,000.00 | $241,509,000.00 | -- | -- | -- | -- | -- |
Additional Paid-in Capital | $795,687,000.00 | $795,106,000.00 | $794,528,000.00 | $793,947,000.00 | $793,434,000.00 | $775,006,000.00 | $774,510,000.00 | $774,335,000.00 | $774,142,000.00 | $773,350,000.00 | $772,135,000.00 | $770,997,000.00 | $770,309,000.00 | $768,429,000.00 | $766,402,000.00 | $764,382,000.00 | $762,332,000.00 | $758,853,000.00 | $755,349,000.00 | $752,072,000.00 | $749,508,000.00 | $746,428,000.00 | $564,229,000.00 | $559,645,000.00 | $555,681,000.00 | $384,965,000.00 | -- | -- | -- | -- | -- |
Accumulated Other Comprehensive Loss | $-5,069,000.00 | $-4,859,000.00 | $-5,072,000.00 | $-5,050,000.00 | $-4,996,000.00 | $-4,828,000.00 | $-4,926,000.00 | $-4,701,000.00 | $-4,527,000.00 | $-4,535,000.00 | $-4,533,000.00 | $-4,431,000.00 | $-4,460,000.00 | $-4,501,000.00 | $-4,731,000.00 | $-4,863,000.00 | $-5,070,000.00 | $-4,467,000.00 | $-4,582,000.00 | $-4,403,000.00 | $-4,595,000.00 | $-4,843,000.00 | $-4,121,000.00 | $-4,328,000.00 | $-4,078,000.00 | $-3,684,000.00 | -- | -- | -- | -- | -- |
Accumulated Deficit | $-834,285,000.00 | $-826,230,000.00 | $-815,925,000.00 | $-802,663,000.00 | $-800,126,000.00 | $-794,017,000.00 | $-802,001,000.00 | $-816,287,000.00 | $-815,309,000.00 | $-808,410,000.00 | $-792,662,000.00 | $-776,611,000.00 | $-752,081,000.00 | $-743,835,000.00 | $-708,388,000.00 | $-689,886,000.00 | $-665,715,000.00 | $-364,815,000.00 | $-144,294,000.00 | $-123,667,000.00 | $-129,754,000.00 | $-147,064,000.00 | $-69,729,000.00 | $-83,387,000.00 | $-92,406,000.00 | $-94,081,000.00 | -- | -- | -- | -- | -- |
Total Stockholders' Equity | $-43,314,000.00 | $-35,630,000.00 | $-26,116,000.00 | $-13,412,000.00 | $-11,341,000.00 | $-23,507,000.00 | $-32,085,000.00 | $-46,319,000.00 | $-45,366,000.00 | $-39,267,000.00 | $-24,732,000.00 | $-9,731,000.00 | $14,083,000.00 | $20,409,000.00 | $53,599,000.00 | $69,950,000.00 | $91,851,000.00 | $389,877,000.00 | $606,779,000.00 | $624,309,000.00 | $615,467,000.00 | $594,823,000.00 | $490,630,000.00 | $472,180,000.00 | $459,440,000.00 | $287,358,000.00 | -- | -- | -- | $288,186,000.00 | $352,676,000.00 |
Controlling Interest in Subsidiaries | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- |
Total Liabilities and Equity | $380,410,000.00 | $401,984,000.00 | $386,844,000.00 | $438,475,000.00 | $426,694,000.00 | $426,834,000.00 | $407,475,000.00 | $395,745,000.00 | $390,869,000.00 | $381,613,000.00 | $385,883,000.00 | $394,639,000.00 | $419,049,000.00 | $442,600,000.00 | $438,459,000.00 | $468,859,000.00 | $535,008,000.00 | $850,895,000.00 | $1,081,583,000.00 | $1,097,701,000.00 | $1,128,621,000.00 | $1,141,172,000.00 | $706,451,000.00 | $656,386,000.00 | $637,736,000.00 | $578,859,000.00 | -- | -- | -- | -- | -- |
Date | 3/31/2024 | 12/31/2023 | 9/30/2023 | 6/30/2023 | 3/31/2023 | 12/31/2022 | 9/30/2022 | 6/30/2022 | 3/31/2022 | 12/31/2021 | 9/30/2021 | 6/30/2021 | 3/31/2021 | 12/31/2020 | 9/30/2020 | 6/30/2020 | 3/31/2020 | 12/31/2019 | 9/30/2019 | 6/30/2019 | 3/31/2019 | 12/31/2018 | 9/30/2018 | 6/30/2018 | 3/31/2018 | 12/31/2017 | 9/30/2017 | 6/30/2017 | 3/31/2017 | 12/31/2016 | 12/31/2015 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Total Revenues | $142,120,000.00 | $609,526,000.00 | $465,453,000.00 | $161,428,000.00 | $163,408,000.00 | $593,382,000.00 | -- | -- | -- | $349,419,000.00 | -- | -- | -- | $310,851,000.00 | $248,880,000.00 | $199,359,000.00 | $146,624,000.00 | $832,937,000.00 | $669,527,000.00 | $467,222,000.00 | $229,705,000.00 | $827,174,000.00 | $597,726,000.00 | $379,299,000.00 | $173,807,000.00 | $543,660,000.00 | $148,167,000.00 | $135,860,000.00 | $105,353,000.00 | $282,354,000.00 | -- |
Cost of Revenues | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | $302,157,000.00 | $52,483,000.00 | $182,711,000.00 | $126,008,000.00 | $669,979,000.00 | $529,994,000.00 | $184,555,000.00 | $178,590,000.00 | $639,298,000.00 | $467,700,000.00 | $163,591,000.00 | -- | $448,467,000.00 | $322,901,000.00 | -- | -- | $246,109,000.00 | -- |
Gross Profit | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | $8,694,000.00 | $-2,962,000.00 | $16,648,000.00 | $20,616,000.00 | $162,958,000.00 | $139,533,000.00 | $52,962,000.00 | $51,115,000.00 | $187,876,000.00 | $130,026,000.00 | $41,901,000.00 | $35,580,000.00 | $95,193,000.00 | $66,479,000.00 | $38,221,000.00 | $13,965,000.00 | $36,245,000.00 | -- |
Research and Development | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- |
Selling, General, and Administrative | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- |
Total Operating Expenses | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- |
Loss from Operations | $4,419,000.00 | $17,573,000.00 | $-813,000.00 | $16,193,000.00 | $6,882,000.00 | $43,568,000.00 | $19,762,000.00 | $6,418,000.00 | $1,082,000.00 | $-50,015,000.00 | $-41,875,000.00 | $-33,796,000.00 | $-17,299,000.00 | $-383,165,000.00 | $-355,900,000.00 | $-330,621,000.00 | $-303,684,000.00 | $-182,728,000.00 | $30,723,000.00 | $40,891,000.00 | $26,936,000.00 | $-28,293,000.00 | $32,540,000.00 | $11,486,000.00 | $4,698,000.00 | $-56,966,000.00 | $-193,000.00 | $-8,141,000.00 | $-14,790,000.00 | $-83,012,000.00 | -- |
Loss Before Income Taxes | $-7,901,000.00 | $-31,628,000.00 | $-21,494,000.00 | $-8,447,000.00 | $-5,225,000.00 | $14,939,000.00 | $6,488,000.00 | $-1,500,000.00 | $-6,787,000.00 | $-64,600,000.00 | $-16,010,000.00 | $-32,654,000.00 | $-8,219,000.00 | $-381,406,000.00 | $-345,921,000.00 | $-24,357,000.00 | $-303,025,000.00 | $-221,638,000.00 | $1,222,000.00 | $21,122,000.00 | $17,770,000.00 | $-50,608,000.00 | $14,788,000.00 | $9,671,000.00 | $1,768,000.00 | $-72,669,000.00 | $-4,286,000.00 | $-12,070,000.00 | $-18,548,000.00 | $-97,197,000.00 | -- |
Earnings Per Share Basic | $-0.24 | $-0.97 | $-0.66 | $-0.26 | $-0.19 | $0.47 | $0.46 | $-0.03 | $-0.23 | $-2.13 | $-1.61 | $-1.09 | $-0.28 | $-12.74 | $-0.62 | $-0.81 | $-10.22 | $-7.43 | $-0.70 | $0.80 | $0.59 | $-2.17 | $1.05 | $0.47 | $0.08 | $-4.55 | $-2.61 | $-2.31 | $-1.50 | $-5.34 | -- |
Weighted Average Shares Basic | 33,850,317 | 33,282,234 | 33,659,386 | 32,801,783 | 32,304,361 | 30,930,890 | 30,810,648 | 30,832,566 | 30,491,976 | 30,302,925 | 30,449,286 | 30,152,733 | 29,878,426 | 29,744,830 | 29,708,673 | 29,844,240 | 29,430,475 | 29,308,107 | 29,288,113 | 29,250,744 | 29,150,996 | 24,411,213 | 23,264,014 | 23,895,858 | 21,902,519 | 14,887,006 | 14,492,757 | 14,652,153 | 13,789,957 | 13,268,540 | -- |
Earnings Per Share Diluted | $-0.24 | $-0.97 | $-0.66 | $-0.08 | $-0.19 | $0.45 | $0.20 | $-0.26 | $-0.23 | $-2.13 | $-1.61 | $-1.09 | $-0.28 | $-12.74 | $-11.56 | $-10.97 | $-10.22 | $-7.43 | $-0.70 | $0.80 | $0.59 | $-2.17 | $1.03 | $0.46 | $0.08 | $-4.55 | $-2.61 | $-0.83 | $-1.50 | $-5.34 | -- |
Weighted Average Shares Diluted | 33,850,317 | 33,282,234 | 33,090,792 | 32,801,783 | 32,304,361 | 32,251,398 | 31,932,613 | 30,832,566 | 30,491,976 | 30,302,925 | 30,252,670 | 30,424,026 | 29,878,426 | 29,744,830 | 29,849,753 | 29,844,240 | 29,430,475 | 29,308,107 | 29,397,636 | 29,423,163 | 29,471,753 | 24,411,213 | 23,603,922 | 23,198,077 | 22,069,353 | 14,887,006 | 14,992,431 | 14,652,153 | 13,789,957 | 13,268,540 | -- |
Common Stock Shares Authorized | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | 120,000,000 | -- | -- | -- | -- | -- |
Common Stock Shares Outstanding | 35,324,861 | 35,324,861 | 35,345,494 | 35,375,614 | 34,720,752 | 33,221,266 | 33,233,106 | 33,369,148 | 32,821,113 | 32,826,325 | 32,840,084 | 31,350,677 | 31,517,982 | 31,557,809 | 31,570,926 | 31,652,635 | 30,406,994 | 30,555,677 | 30,582,584 | 30,683,009 | 30,782,600 | 30,163,408 | 25,114,597 | 25,030,863 | 24,278,857 | 15,810,540 | -- | -- | -- | -- | -- |
Common Stock Value | $353,000.00 | $353,000.00 | $353,000.00 | $354,000.00 | $347,000.00 | $332,000.00 | $332,000.00 | $334,000.00 | $328,000.00 | $328,000.00 | $328,000.00 | $314,000.00 | $315,000.00 | $316,000.00 | $316,000.00 | $317,000.00 | $304,000.00 | $306,000.00 | $306,000.00 | $307,000.00 | $308,000.00 | $302,000.00 | $251,000.00 | $250,000.00 | $243,000.00 | $158,000.00 | -- | -- | -- | -- | -- |
Common Stock Par Or Stated Value Per Share | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | -- | -- | -- | -- | -- |
Payments Of Dividends Common Stock | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- |
Preferred Stock Shares Authorized | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- |
Preferred Stock Shares Outstanding | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- |
Preferred Stock Value | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- |
Preferred Stock Par Or Stated Value Per Share | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- |
Share Price | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- |