W.P.(C)No.1509/2016 Page 1 of 33 AFR HIGH COURT OF CHHATTISGARH, BILASPUR Writ Petition (C) No.1509 of 2016 (Order dated 31-3-2012 passed by the Regional Officer, Regional Office, C.G. Environment Conservation Board, New H.I.G., 9-10-11, Tatibandh, Raipur) Order reserved on: 5-3-2018 Order delivered on: 23-3-2018 M/s E. Tech Projects Private Limited, 172-A, Light Industrial Area, Bhilai, Distt. Durg, Chhattisgarh. Through its Director, Mohd. Ziauddin Siddiqui, S/o Shri Faizanuddin, Aged 55 years, R/o 2-A, Ahmedabad Palace Road, Opposite Noormasjid, Koh-e-Fiza, Bhopal, Madhya Pradesh. ---- Petitioner Versus 1. The State of Chhattisgarh, Through Principal Secretary, Department of Housing & Environment, Mantralaya, Mahanadi Bhavan, Naya Raipur, Raipur (C.G.) 2. CG Environment Conservation Board, Through its Chairman, Commercial Complex, Chhattisgarh Housing Board Colony, Raipur (C.G.) 3. Regional Officer, CG Environment Conservation Board, New HIG, 9-10-11, Tatiband, Raipur (C.G.) 4. Central Pollution Control Board, Through its Regional Officer, 3 rd Floor, Sahkar Bhawan, North T.T. Nagar, Bhopal, Madhya Pradesh 5. M/s SMS Water Grace Enviro-protect Private Limited, PH No.20, Village Siltara, Dharsiwa, Distt. Raipur (C.G.) 6. M/s SMS Infrastructure Limited, 267, Ganesh Fadnavis Bhawan, Near Triangular Park, Dharampeth, Nagpur, Maharashtra ---- Respondents
For Petitioner: Mr. Ajay Kumar Mishra, Senior Advocate with Mr. Ankit Singhal, Advocate.
For Respondent No.1/State: -
Mr. Arun Sao, Deputy Advocate General.
For Respondents No.2 and 3: -
Mr. Sudhir Kumar Bajpai, Advocate.
For Respondent No.4: -
Mr. V.V.S. Murthy, Senior Advocate with Mr. Shantanu Kumar, Advocate.
W.P.(C)No.1509/2016 Page 2 of 33 For Respondents No.5 and 6: -
Mr. S.C. Mehadia and Mr. Harsh Wardhan, Advocates. For Intervener: Mr. Satish Kumar Tripathi, Advocate.
Hon'ble Shri Justice Sanjay K. Agrawal C.A.V. Order
1. The waste generated by Hospitals, Nursing Homes, pathological labs etc., termed as Bio-medical Waste, is required to be disposed of in terms of the Rules framed by the Government of India, in exercise of the powers conferred upon it by Sections 5, 8 and 25 of the Environment (Protection) Act, 1986, known as the Bio- Medical Waste (Management and Handling) Rules, 1998 (for short, 'the Rules of 1998'), repealed now by the Bio-Medical Waste Management Rules, 2016 with effect from 28-3-2016. Central Pollution Control Board has on 25-9-2003 issued guidelines for establishment of Common Bio-medical Waste Treatment Facility (CBWTF).
2. The petitioner with due permission of the competent authority established a Common Bio-medical Waste Treatment Plant at Industrial Area, Bhilai for disposal of medical waste in Durg, Bhilai and Raipur cities for which requisite authorisation was granted under Rule 8 of the Rules of 1998 subject to conditions mentioned in the memo dated 7-4-2003 to establish and operate CBWTF for Durg, Bhilai and Raipur cities only.
3. It is the case of the petitioner that the petitioner is successfully running the said CBWTF whereas it is the case of respondents No.2 and 3 that the petitioner failed to maintain the said CBWTF leading to grant of consent to establish under the provisions of W.P.(C)No.1509/2016 Page 3 of 33 the Air (Prevention and Control of Pollution) Act, 1981 (for short, 'the Air Act') and the Water (Prevention and Control of Pollution) Act, 1974 (for short, 'the Water Act'), to respondent No.5.
4. Thus, the petitioner seeks to challenge the consent granted on 31- 3-2012 to respondent No.5 for establishing Common Bio-Medical Waste Treatment Plant for capacity of two ton per day at P.H.No.20, Khasra No.70/(1, 2, 5), Village Siltara, Dharsiwa, Distt. Raipur subject to fulfillment of certain conditions clearly providing that consent for operation as required under the Water Act and the Air Act shall be granted to respondent No.5 after fulfillment of all the conditions mentioned in the memo dated 31-3-2012.
5. The petitioner has challenged the said order dated 31-3-2012 preliminary on the ground that the petitioner has established CBWTF for Raipur, Durg and Bhilai, making its capital investment on land allotted to the petitioner in industrial estate on payment of premium and ground rent, and pursuant to selection and allotment of CBWTF, respondent No.2 has granted provisional authorisation on 7-4-2003 with a specific area prescription of Raipur, Durg and Bhilai cities only. The said authorisation was kept on renewing and latest authorisation is valid up to 6-4-2018 in which the petitioner has made huge capital investment as per the guidelines of Central Pollution Control Board and also made huge investment for up-gradation as per the direction of respondent No.2 in the financial years 2013-14 and 2015-14. The main ground raised in the petition is that the guidelines of 2003 issued by Central Pollution Control Board clearly bar installation of second W.P.(C)No.1509/2016 Page 4 of 33 CBWTF in the same area until the minimum bed capacity of 10,000 is achieved as it further prescribes the area restriction for second CBWTF and in the present case, the bar undisputedly attracts, therefore, the permission granted in violation of mandatory norms of the Central Pollution Control Board is illegal and without authority of law, as such, the order Annexure P-1 dated 31-3-2012 deserves to be quashed. Establishment of CBWTF is a statutory assignment and specific procedure and power to establish the same has been given in the Rules of 1998 and therefore CBWTF is a public utility and as such, a private entrepreneur cannot be granted permission by mere asking.
6. Return has been filed by the State Environment Conservation Board controverting the allegations made in the writ petition and stating inter alia that the order Annexure P-1 granting consent to establish is an appealable order under the provisions of the Air Act and the Water Act. The order Annexure P-1 dated 31-3-2002 was passed way back and the writ petition has only been filed on 13-6- 2016 as such there is delay of more than four years which has not been explained satisfactorily by the petitioner and on that ground, the writ petition deserves to be dismissed with exemplary costs. The guidelines issued by Central Pollution Control Board in the year 2002 are non-statutory in nature, they are rather only regulatory as well as recommendatory in nature, they have no statutory force, therefore, it cannot be enforced through the court of law. There is no statutory provision in law for establishment of any number of CBWTF either under the W.P.(C)No.1509/2016 Page 5 of 33 provisions of the Environment (Protection) Act, 1986 or under the Rules of 1998 and the guidelines issued by the Central Pollution Control Board. In the affidavit filed pursuant to the order of this Court, the Central Pollution Control Board had clearly stated that the guidelines are not mandated under the Rules of 1998 as amended. The CBWTF established by the petitioner has failed to perform the duty entrusted to it for which from time to time, order under Section 5 of the Environment (Protection) Act, 1986 has been passed for compliance of terms and conditions of the consent order and even the petitioner has submitted in writing that it may be allowed to close down the said plant, as it had failed to fulfill the terms and conditions of the consent granted to it. The National Green Tribunal has emphasised the need of further CBWTF in the State of Chhattisgarh finding the CBWTF available at present to be inefficient and inadequate, as such, writ petition deserves to be dismissed.
7. Private respondent No.5 has also filed a separate return strongly opposing the writ petition mainly on the ground of delay of more than four years which is said to be unexplained and inordinate in nature and further adopted the stand of respondents No.2 and 3 that there is no bar in establishing further CBWTF in the State of Chhattisgarh, as the petitioner's plant was found non-functional by the State Environment Conservation Board which is clear from the return filed supported by documents and which clearly demonstrate that the petitioner has failed to fulfill the terms and conditions. Even otherwise, the plant has been established only W.P.(C)No.1509/2016 Page 6 of 33 for Durg, Bhilai and Raipur cities, not for other areas and the guidelines issued by Central Pollution Control Board are only directory in nature, they are not mandatory in nature and are non- statutory in nature, therefore, they cannot be enforced through the court of law and there is no provision for fixing the areas, as such, the writ petition deserves to be dismissed.
8. Central Pollution Control Board also filed return as well as separate affidavit pursuant to the order of this Court.
9. Mr. Ajay Kumar Mishra, learned Senior Counsel appearing for the petitioner, had vehemently contended that there is absolutely bar in terms of clause D of the guidelines issued by Central Pollution Control Board on 25-9-2003 in shape of clause D which clearly restricts the establishment of CBWTF once the CBWTF is established to cater up to 10,000 beds at the approved rate by the prescribed authority, as 10,000 beds capacity has not exceeded at present, therefore, another CBWTF in the same area cannot be allowed to be established by order dated 31-3-2012 vide Annexure P-1. Replying to the delay caused in filing the writ petition, he would further submit that the petitioner was not aware of granting permission to establish another CBWTF at Raipur, therefore, it could not prefer writ petition questioning the order passed by respondents No.2 and 3 vide Annexure P-1 and as soon as the petitioner noticed the passing of order, immediately, the writ petition was filed questioning the grant of permission to establish CBWTF at Raipur. He would also submit that CBWTF is a public utility and therefore a private entrepreneur cannot be W.P.(C)No.1509/2016 Page 7 of 33 granted permission by mere asking, as such, the writ petition deserves to be allowed and the order Annexure P-1 as also the consequential order which has been passed during the pendency of writ petition dated 29-1-2018 granting consent to operate under the provisions of the Water Air and the Air Act, deserve to be quashed.
10. Mr. Sudhir Kumar Bajpai, learned counsel appearing for respondents No.2 and 3, would submit as under: -
1. Guidelines dated 25-9-2003 issued by Central Pollution Control Board have no legal basis nor force, as they are merely regulatory and recommendatory, not statutory in nature and therefore they cannot be enforced.
2. While replying to the argument based on clause D of the guidelines, he would further submit that the restriction indicated in clause D is available against the petitioner as the CBWTF at one time can only be allowed to cater up to 10,000 beds and it cannot be allowed to cater health care units situated beyond a radius of 150 kms. and as such there is no statutory prohibition in terms of establishment of another CBWTF where one CBWTF is already operating, particularly when the petitioner was granted permission to establish CBWTF for Durg, Bhilai and Raipur cities only. He would emphasize on the word 'cities' used in the permission granted to the petitioner on 7-4-2003.
3. Learned counsel Mr. Bajpai would also bring to the notice of the court various complaints made from time to time taken W.P.(C)No.1509/2016 Page 8 of 33 cognizance of by the Central Pollution Control Board as well as the order passed under Section 5 of the Environment (Protection) Act, 1986 directing the petitioner to rectify the defects and bring it in conformity with the consent granted under the Water Act and the Air Act. He also brought to the notice of the court two letters issued by the petitioner indicating its willingness and intention to close down the CBWTF unit and further, looking to the directions issued by the National Green Tribunal after passing of the order Annexure P-1 for establishing the need of further grant of CBWTF in the State of Chhattisgarh, the writ petition deserves to be dismissed.
11. Mr. S.C. Mehadia, learned counsel appearing for respondents No.5 and 6, would submit that primarily, the writ petition deserves to be dismissed as it suffers from delay and laches. The permission having been granted on 31-3-2012 the writ petition has been laid on 13-6-2016 and such a delay of more than four years has not been explained properly. Mere saying that the petitioner was not aware of the order passed by respondents No.2 and 3 is not enough particularly when the petitioner's CBWTF is established at Durg, Bhilai and Raipur and the order has been passed by the original office / Board at Raipur. He would further submit that by no stretch of imagination, the petitioner's explanation that it was not aware of the impugned order, can be accepted. On the prohibition of second CBWTF in the coverage area covered by the petitioners, he would submit that the guidelines are non-statutory W.P.(C)No.1509/2016 Page 9 of 33 in nature, it is not regulatory in nature and clause D of the guidelines operate against the petitioner. The State Environment Conservation Board finding great and extreme need of establishment of CBWTF has directed for granting permission to establish CBWTF and recently, during the pendency of petition, even the consent to operate in terms of the Water Act and the Air Act has been granted to respondent No.5 which has even not been questioned in the writ petition, therefore, the writ petition deserves to be dismissed with cost.
12. Mr. V.V.S. Murthy, learned Senior Counsel appearing for respondent No.4, would submit that affidavit as directed by this Court on 17-5-2017 has been filed which has already been taken on record.
13. I have heard learned counsel for the parties and considered their rival submissions made herein-above and went through the record with utmost circumspection.
14. This Court by order dated 17-5-2017 framed following three questions and directed the respondents to submit specific information about the same: -
(A) Whether the statutory and regulatory framework governing establishment of Bio Medical Waste Treatment Plant, require any procedure to be followed in granting permission to any intending entrepreneur and if so, what procedure has been prescribed.
(B) Whether there is a statutory prohibition under any law to establish more than one Bio Medical Waste Treatment Plant W.P.(C)No.1509/2016 Page 10 of 33 within the periphery of 75 Kms and the specific details of such regulatory mechanism under the rules and guidelines of the State or Central Conservation Authority.
(C) What is the present status of the Bio Medical Waste Treatment Plant alleged to have been constructed by respondent No.5 or 6.
15. In compliance of the order of this Court, parties including Central Pollution Control Board and State Environment Conservation Board have filed their affidavit which have already been taken on record.
16. This Court by order dated 30-8-2017 overruled the preliminary objection taken on behalf of respondent No.5 that reliefs claimed are covered by the provisions of the National Green Tribunal Act, 2010 and held that the subject matter of the writ petition is cognizable by this Court under Article 226 / 227 of the Constitution of India.
17. Upon hearing the counsel for the parties at length and going through the record, following three main questions arise for consideration: -
1. Whether there is any specific bar contained either in the Rules of 1998 or in the circular dated 25-9-2003 issued by Central Pollution Control Board for establishment of a further CBWTF during the establishment and operation of one CBWTF and what is the nature of guidelines dated 25-9- 2003?
W.P.(C)No.1509/2016 Page 11 of 33
2. Whether the writ petition suffers from delay and laches?
3. Whether proper procedure for setting up and operation of CBWTF has been followed?
Answer to issue No.1: -
18. In order to answer this issue, it would be appropriate to notice the provisions contained in the Environment (Protection) Act, 1986 and the rules made thereunder as also the provisions of the Water Act and the Air Act.
19. The Environment (Protection) Act, 1986 (for short, 'the Act of 1986') has been enacted for protection and improvement of environment and the prevention of hazards to human beings. Section 3 of the Act of 1986 empowers the Central Government to take measures to protect and improve environment and for the purpose, the Central Government has been authorised and empowered to take necessary action for the purpose of protecting and improving the quality of environment and preventing environmental pollution. Section 6 of the Act of 1986 empowers the Central Government to frame rules to regulate environmental pollution and Section 25 prescribes the rule making power of the Central Government by notification in the Official Gazette in order to have proper and effective implementation of the provisions contained in the Act of 1986.
20. The Water Act has been enacted by the Parliament to prevent and control water pollution and for establishment of Boards for conferring powers and functions related thereto. Section 3 of the Water Act prescribes constitution of Central Pollution Control W.P.(C)No.1509/2016 Page 12 of 33 Board (CPCB) and its functions have been defined in Section 16 of the Act. Clause (f) of sub-section (2) of Section 3 of the Water Act specifically prescribes as under: -
"(f) collect, compile and publish technical and statistical data relating to water pollution and the measures devised for its effective prevention and control and prepare manuals, codes or guides relating to treatment and disposal of sewage and trade effluents and disseminate information connected therewith."
21. In the Water Act, Section 33A has been inserted with effect from 29-9-1988 empowering the Board to give directions, which states as under: -
"33A. Power to give directions.--Notwithstanding anything contained in any other law, but subject to the provisions of this Act, and to any directions that the Central Government may give in this behalf, a Board may, in the exercise of its powers and performance of its functions under this Act, issue any directions in writing to any person, officer or authority, and such person, officer or authority shall be bound to comply with such directions.
Explanation.--For the avoidance of doubts, it is hereby declared that the power to issue directions under this section includes the power to direct--
(a) the closure, prohibition or regulation of any industry, operation or process; or
(b) the stoppage or regulation of supply of electricity, water or any other service."
22. The Air Act contains similar pari materia provision and Section 31-
A has been inserted therein conferring power to the Central Board akin to power conferred by Section 33A of the Water Act.
23. The Central Government exercising the powers conferred under Sections 6, 8 and 25 of the Act of 1986 framed the Bio Medical Waste (Management and Handling) Rules, 1998 with effect from 20-7-1998.
W.P.(C)No.1509/2016 Page 13 of 33
24. In the matter of B.L. Wadehra v. Union of India1, the Supreme Court issued directions to the Government of India and Municipal Corporation of Delhi and also to the All India Institute of Medicine Sciences, New Delhi to construct and install incinerators in all the hospitals / nursing homes for disposal of waste generated by said hospitals and nursing homes.
25. After the judgment of the Supreme Court in B.L. Wadehra (supra), the Rules of 1998 were enacted and the concept of CBWTF was evolved. By the said Rules, the treatment of Bio Medical Waste was made mandatory. The Rules of 1998 provide for collection, reception, storage, transportation, treatment, disposal or handling of bio medical waste in every form and Rule 5 of the said Rules mandatorily prescribes that bio medical waste shall be treated and disposed of in accordance with the norms specified in the schedule. In Rule 3(3) of the Rules of 1998, "authorisation" has been defined to mean permission granted by the prescribed authority for the generation, collection, reception, storage, transportation, treatment, disposal and / or any other form of handling of bio-medical waste in accordance with these rules and any guidelines issued by the Central Government. Rule 7 of the Rules of 1998 specifically prescribes that every State Pollution Control Board shall have a prescribed authority for enforcement of the provisions of the Rules of 1998 in respect of all health care establishments including hospitals, nursing homes, clinics, dispensaries, veterinary institutions, animal houses, pathological laboratories and blood banks of the Armed Forces. Sub-rule (3) of 1 1996 CJ(SC) 112 W.P.(C)No.1509/2016 Page 14 of 33 Rule 7 mandates that the prescribed authority shall function under the supervision and control of the respective Government of the State or Union Territory. Rule 8 of the Rules of 1998 prescribes that every occupier of an institution generating, collecting, receiving, storing, transporting, treating, disposing and / or handling bio-medical waste in any other manner, except such occupiers of clinics, dispensaries, pathological laboratories, blood banks providing treatment / service to less than 1000 patients per month, shall make an application in Form I to the prescribed authority for grant of authorisation. The Rules of 1998 were amended with effect from 2-6-2000 whereby Rule 14 provided specific provision for establishment of public utility of common disposal/incineration sites and whereby specific obligation was cast upon the local bodies of the area concerned. Rule 14 of the Rules of 1998 prescribes as under: -
"14. Common disposal/incineration sites.--Without prejudice to rule 5 of these rules, the Municipal Corporations, Municipal Boards or Urban Local Bodies, as the case may be, shall be responsible for providing suitable common disposal/incineration sites for the biomedical wastes generated in the area under their jurisdiction and in areas outside the jurisdiction of any municipal body, it shall be the responsibility of the occupier generating biomedical waste / operator of a bio medical waste treatment facility to arrange for suitable sites individual or in association, so as to comply with the provisions of these rules."
26. It is pertinent to mention here that Section 5 of the Act of 1986 empowers the Central Government to give directions in exercise of its powers and performance of its functions under the Act of 1986 and issue directions in writing to any person, officer or any authority and such person, officer or authority has been declared W.P.(C)No.1509/2016 Page 15 of 33 bound to comply with such directions. The Central Government exercising powers under Section 23 of the Act of 1986 has delegated the powers vested in it under Section 5 of the said Act to the Chairman, Central Pollution Control Board vide notification dated 27-2-1996.
27. The aforesaid scheme of the Rules of 1998 thus, comprehensively regulate management, handling and disposal of biomedical waste and the Rules do not speak about the coverage area of CBWTF and as such, neither the Act of 1986 nor the Rules of 1998 restricts or prohibits the State Pollution Control Board from establishing more than one CBWTF in a particular locality. The Rules of 1998 were repealed by the Bio-Medical Waste Management Rules, 2016 (for short, 'the Rules of 2016'), which came into force with effect from 28-3-2016. However, Rule 7(3) of the Rules of 2016 clearly provides that "no occupier shall establish on-site treatment and disposal facility, if a service of common bio- medical waste treatment facility is available at a distance of seventy-five kilometer". In the instant case, the Rules of 1998 will be applicable, as the impugned order granting permission to establish CBWTF was granted by the State Pollution Control Board on 31-3-2012 as such, the Rules of 1998 as amended do not specify the criteria for coverage area of CBWTF and the Rules of 2016 came into force with effect from 28-3-2016.
28. Mr. Mishra, learned Senior Counsel, has placed great emphasis on clause D of the Guidelines for Common Bio-Medical Waste Treatment Facility issued by Central Pollution Control Board on W.P.(C)No.1509/2016 Page 16 of 33 25-9-2003 to buttress his plea that CBWTF of respondent No.5 is barred to be established. The said Clause D of the guidelines issued states as under: -
"D. COVERAGE AREA OF CBWTF In any area, only one CBWTF may be allowed to cater up to 10,000 bads at the approved rate by the Prescribed Authority. A CBWTF shall not be allowed to cater healthcare units situated beyond a radius of 150 km. However, in an area where 10,000 beds are not available within a radius of 150 km, another CBWTF may be allowed to cater the healthcare units situated outside the said 150 km."
29. A focused glance of the aforesaid clause D of the guidelines would state that (1) only one CBWTF may be allowed to cater up to 10,000 beds at the approved rate by the prescribed authority; and (2) the CBWTF shall not be allowed to cater health-care units situated beyond a radius of 150 kms., however, in an area where 10,000 beds are not available within a radius of 150 kms., another CBWTF may be allowed to cater the health-care units situated outside the said 150 kms.. On the basis of aforesaid analysis, it can be said that the aforesaid guidelines do not restrict the number of units to be established in a particular area / district / locality. However, it gives the maximum number of beds that can be catered by one CBWTF and also it prescribes the maximum radius in which the CBWTF can be operated. Therefore, the argument raised by learned Senior Counsel that it restricts the State Pollution Control Board to grant permission to establish or permission to consent another CBWTF in an area covered by the petitioner sans merit and deserves to be rejected.
30. The ancillary question would be whether the guidelines issued by W.P.(C)No.1509/2016 Page 17 of 33 the CPCB are statutory in nature which can be enforced by the petitioner by way of writ petition.
31. This Court, as noticed herein-above, by order dated 17-5-2017 directed the respective parties to file their affidavit as to whether there is statutory prohibition under the law to establish more than one plant of CBWTF in the periphery of 75 Kms., the rules or regulations. Central Pollution Control Board has filed its affidavit clearly stating that the guidelines published by CPCB in the year 2003 were to facilitate setting up of new CBWTFs in the country, though such guidelines are not mandated under Bio-medical Waste (Management & Handling) Rules, 1998 as amended. Further, CPCB has stated in the affidavit as under: -
"In this regard, it is humbly that the objective of CPCB's earlier guidelines is to protect operational area of an already existing CBMWTF so as to provide effective services to member hospitals. Further, as per earlier guidelines, another facility was allowed close to existing facility but has to operate beyond the coverage of existing facility. In this regard, it is also submitted that mushrooming of multiple facilities in same area would bring in un-healthy competition among the facility operators which would result into operation of facilities in economically un-viable manner, leading to improper management of biomedical waste."
32. Central Pollution Control Board has also stated that Rule 7(3) of the Rules of 2016 contains a bar to establish on-site treatment and disposal facility, if a service of a CBWTF is available at a distance of 75 Kms.
33. State Pollution Control Board has also filed affidavit clearly stating that the guidelines of 2003 issued by CPCB are regulatory as well as recommendatory in nature, but it is not mandatory in nature. It has also stated that the guidelines of 2003 fixed the W.P.(C)No.1509/2016 Page 18 of 33 limit of operation of CBWTF, but it nowhere lays down that there cannot be any CBWTF within a distance of 150 Kms..
34. After having noticed the stand of CPCB and State Pollution Control Board in which they have clearly stated that the guidelines of 2003 were not issued in terms of any statutory provisions under the Rules of 1998, it would be appropriate to notice a pertinent decision of the Supreme Court in the matter of Syndicate Bank v. Ramachandran Pillai and others2 in which Their Lordships of the Supreme Court have held that if administrative orders / decisions / executive instructions / orders / circulars - guidelines are not statutory in character, they are not law, they confer no legal right to seek a direction in a court of law for compliance with such guidelines even if there has been any violation or breach of such non-statutory guidelines and it has been held as under: -
"6. If any executive instructions are to have the force of statutory rules, it must be shown that they were issued either under the authority conferred on the Central Government or a State Government or other authority by some statute or the Constitution. Guidelines or executive instructions which are not statutory in character, are not "laws", and compliance therewith cannot be enforced through courts. Even if there has been any violation or breach of such non- statutory guidelines, it will not confer any right on any member of the public, to seek a direction in a court of law, for compliance with such guidelines. An order validly made in accordance with a statute (as in this case the Public Premises Act), cannot be interfered with, even if there has been any transgression of any guidelines, except where it is arbitrary or mala fide or in violation of any statutory provision. These are well- settled principles (see Union of India v. S.L. Abbas3, South Central Railway v. G. Ratnam 4 and State of U.P. v.
2 (2011) 15 SCC 398 3 1993 (4) SCC 357 4 2007 (8) SCC 212 W.P.(C)No.1509/2016 Page 19 of 33 Gobardhan Lal5).
7. As the guidelines relied upon in this case were not issued in exercise of any statutory power under the Public Premises Act or any other statute, even if there was violation or non-compliance with the aforesaid guidelines by the appellant, relief to the appellant could not be denied by relying upon the guidelines. To do so would amount to reading the guidelines into the statute, which is impermissible. The only "remedy" of any person complaining of non-compliance with such guidelines, is to bring such violation to the notice of a higher authority. We therefore hold that the enforcement of any right or exercise of any power by the appellant, under the Public Premises Act cannot be set at naught by relying upon or referring to the guidelines issued by the Central Government. "
35. The judgment of the Supreme Court in the matter of Shivashakti Sugars Limited v. Shree Renuka Sugar Limited and others 6 may be noticed herein profitably in which the challenge was to the permission granted to establish a new sugar factory within a radius of 15 kms. from the sugar factory of the appellant therein, in breach of clause 6-A of the Sugar (Control) Order, 1966. In that case also by the time the challenge was made, the respondent therein had already made huge investment in establishing the factory. After taking into consideration various aspects of the case, the Supreme Court declined to interfere and held that there is no reason to not let the appellant factory function, merely because there might be technical violation(s) of law and placing reliance upon its earlier judgment in the matter of Har Shankar v. Excise and Taxation Commr.7, it has been held as under: -
"37. ... At the same time, it was observed that the licensees are not precluded from seeking to enforce the statutory provisions governing the contract. It 5 2004 (11) SCC 402 6 (2017) 7 SCC 729 7 (1975) 1 SCC 737 W.P.(C)No.1509/2016 Page 20 of 33 must, however, be remembered that we are dealing with parties to a contract, which is a business transaction, no doubt governed by statutory provisions. (Reference may also be made to the decision of this Court in Excise Commr. v. Issac Peter8.) While examining complaints of violation of statutory rules and conditions, it must be remembered that violation of each and every provision does not furnish a ground for the court to interfere. The provision may be a directory one or a mandatory one. In the case of directory provisions, substantial compliance would be enough. Unless it is established that violation of a directory provision has resulted in loss and/or prejudice to the party, no interference is warranted. Even in the case of violation of a mandatory provision, interference does not follow as a matter of course. A mandatory provision conceived in the interest of a party can be waived by that party, whereas a mandatory provision conceived in the interest of the public cannot be waived by him. In other words, wherever a complaint of violation of a mandatory provision is made, the court should enquire
--in whose interest is the provision conceived. If it is not conceived in the interest of the public, question of waiver and/or acquiescence may arise--subject, of course, to the pleadings of the parties. This aspect has been dealt with elaborately by this Court in State Bank of Patiala v. S.K. Sharma 9 and in Krishan Lal v. State of J&K10 on the basis of a large number of decisions on the subject. Though the said decisions were rendered with reference to the statutory rules and statutory provisions (besides the principles of natural justice) governing the disciplinary enquiries involving government servants and employees of statutory corporations, the principles adumbrated therein are of general application. It is necessary to keep these considerations in mind while deciding whether any interference is called for by the court--whether under Article 226 or in a suit. The function of the court is not a mechanical one. It is always a considered course of action. "
36. Their Lordships further in Shivashakti Sugars Limited (supra) held that economic impact of judicial decision is important in deciding cases, as India, a developing economy, is on road of economic growth and judiciary also has a role in this development. Their Lordships also held that if two views are possible, the view 8 (1994) 4 SCC 104 9 (1996) 3 SCC 364 : 1996 SCC (L&S) 717 10 (1994) 4 SCC 422 : 1994 SCC (L&S) 885 W.P.(C)No.1509/2016 Page 21 of 33 that sub-serves economic interest of nation should be adopted and economic interest of nation should take precedence over technical violation of law. It has been observed as under: -
"41. When we keep in mind all the aforesaid factors cumulatively, we see that no purpose is going to be served in getting the unit of the appellant closed. On the contrary, public purpose demands that the appellant's factory remain in operation and continue to function.
43. It has been recognised for quite some time now that law is an interdisciplinary subject where interface between law and other sciences (social sciences as well as natural/physical sciences) come into play and the impact of other disciplines of Law is to be necessarily kept in mind while taking a decision (of course, within the parameters of legal provisions). Interface between Law and Economics is much more relevant in today's time when the country has ushered into the era of economic liberalisation, which is also termed as "globalisation" of economy. India is on the road of economic growth. It has been a developing economy for number of decades and all efforts are made, at all levels, to ensure that it becomes a fully developed economy. Various measures are taken in this behalf by the policy-makers. The judicial wing, while undertaking the task of performing its judicial function, is also required to perform its role in this direction. It calls for an economic analysis of law approach, most commonly referred to as "Law and Economics"11. In fact, in certain 11 Richard A. Posner in his book Frontiers of Legal Theory explains this concept as follows:
"Economic analysis of law has heuristic, descriptive and normative aspects. As a heuristic, it seeks to display underlying unities in legal doctrines and institutions; in its descriptive mode, it seeks to identify the economic logic and effects of doctrines and institutions and the economic causes of legal change; in its normative aspect it advises Judges and other policy-makers on the most efficient methods of regulating conduct through law. The range of its subject- matter has become wide, indeed all-encompassing. Exploiting advances in the economics of nonmarket behaviour, economic analysis of law has expanded far beyond its original focus on antitrust, taxation, public utility regulation, corporate finance, and other areas of explicitly economic regulation. (And within that domain, it has expanded to include such fields as property and contract law.) The "new" economic analysis of law embraces such nonmarket, or quasi-nonmarket, fields of law as tort law, family law, criminal law, free speech, procedure, legislation, public international law, the law of intellectual property, the rules governing the trial and appellate process, environmental law, the administrative process, the regulation of health and safety, the laws forbidding discrimination in employment, and social norms viewed as a source of, an obstacle to, and a substitute for formal law."
W.P.(C)No.1509/2016 Page 22 of 33 branches of Law there is a direct impact of Economics and economic considerations play predominant role, which are even recognised as legal principles. Monopoly laws (popularly known as "Antitrust Laws" in USA) have been transformed by Economics. The issues arising in competition laws (which has replaced monopoly laws) are decided primarily on economic analysis of various provisions of the Competition Commission Act. Similar approach is to be necessarily adopted while interpreting bankruptcy laws or even matters relating to corporate finance, etc. The impress of Economics is strong while examining various facets of the issues arising under the aforesaid laws. In fact, economic evidence plays a big role even while deciding environmental issues. There is a growing role of Economics in contract, labour, tax, corporate and other laws. Courts are increasingly receptive to economic arguments while deciding these issues. In such an environment it becomes the bounden duty of the Court to have the economic analysis and economic impact of its decisions.
44. We may hasten to add that it is by no means suggested that while taking into account these considerations, specific provisions of law are to be ignored. First duty of the Court is to decide the case by applying the statutory provisions. However, on the application of law and while interpreting a particular provision, economic impact/effect of a decision, wherever warranted, has to be kept in mind. Likewise, in a situation where two views are possible or wherever there is a discretion given to the Court by law, the Court needs to lean in favour of a particular view which Posner also mentioned that this interface between Law and Economics might grandly be called "Economic Theory of Law", which is built on a pioneering article by Ronald Coase [R.H. Coase, "The Problem of Social Cost", 3 Journal of Law and Economics 1 (1960)]:
"The "Coase Theorem" holds that where market transaction costs are zero, the law's initial assignment of rights is irrelevant to efficiency, since if the assignment is inefficient the parties will rectify it by a corrective transaction. There are two important corollaries. The first is that the law, to the extent interested in promoting economic efficiency, should try to minimize transaction costs, for example by defining property rights clearly, by making them readily transferable, and by creating cheap and effective remedies for breach of contract...
The second corollary of the Coase Theorem is that where, despite the law's best efforts, market transaction costs remain high, the law should simulate the market's allocation of resources by assigning property rights to the highest- valued users. An example is the fair-use doctrine of copyright law, which allows writers to publish short quotations from a copyrighted work without negotiating with the copyright holder. The costs of such negotiations would usually be prohibitive; if they were not prohibitive, the usual result would be an agreement to permit the quotation, and so the doctrine of fair use brings about the result that the market would bring about if market transactions were feasible."
W.P.(C)No.1509/2016 Page 23 of 33 subserves the economic interest of the nation. Conversely, the Court needs to avoid that particular outcome which has a potential to create an adverse effect on employment, growth of infrastructure or economy or the revenue of the State. It is in this context that economic analysis of the impact of the decision becomes imperative12."
37. The principle of law laid down in the above-stated judgment squarely applies to the facts of the present case. The petitioner has even failed to establish technical violation in granting consent to establish CBWTF at Raipur by the impugned order.
38. Apart from this, the matter can be considered from another view point. Affidavit in reply filed by respondents No.2 and 3 would show that the petitioner's CBWTF plant was not functioning at all in accordance with the rules and the guidelines. The plant of the petitioner was inspected by the authorities of State Pollution Control Board and Central Pollution Control Board and it was found that the petitioner was not complying with the rules and the guidelines and show cause notices were issued to the petitioner from time to time, even directions under Section 5 of the Act of 1986 were issued from time to time by the competent authority. Copies of show cause notices and inspection report have been annexed by respondents No.2 and 3 along with the reply. Respondents No.2 and 3 have also annexed letters dated 13-2-2012 and 13-8-2012 of the petitioner wherein the petitioner has requested respondent No.2 for permission to close the unit and also informed that the petitioner can operate the CBWTF till 12 In the jurisprudence of the Economic Approach to Law, there are various theories propounded by the jurists e.g. the Positive Theory or Normative Theory, etc. However, here, we are limiting the discussion to that facet which relates to economic impact of a judicial decision.
W.P.(C)No.1509/2016 Page 24 of 33 alternative arrangement is made. In the instant case, respondent No.5 has already proceeded with establishment of its CBWTF plant and as stated, it had invested a sum of ₹ 3 crores in the establishment of the plant and is ready for operation. The petitioner was even not interested in continuing to operate the present unit and has asserted that it is operating the plant till alternative arrangement is made or direction for closure is issued by respondent No.2. Thus, it appears from the record that since the petitioner expressed its willingness to close the unit finding difficult to run the same, the petitioner was already found deficient in performing the duty and application of respondent No.5 was pending since 2011, respondents No.2 and 3 decided to consider and grant consent to respondent No.5 to establish CBWTF on 31-3-2012. In these circumstances, respondents No.2 and 3 were fully justified in granting consent to establish another CBWTF at Raipur.
39. Improper disposal and serious mismanagement of bio-medical waste in the State of Chhattisgarh was also noticed by the National Green Tribunal, Principal Bench New Delhi in Original Application No.507/2014 (Mahesh Dubey v. Chhattisgarh Environment Conservation Board and others), decided on 15-12- 2016. After thorough consideration, the National Green Tribunal in its judgement has held that in the State of Chhattisgarh only four CBWTFs are functioning, only two are having incinerators and only one of them is having the required land area of one acre. The CBWTF at Bilaspur is having a land area of one acre whereas, the W.P.(C)No.1509/2016 Page 25 of 33 one at Korba around 0.5 acres of land. Besides the remaining two CBWTFs at Raigarh and Bhilai-Durg (by the petitioner) are having only ¼th of the land than the one actually required. It was further held that the plants installed in the State for the purpose of treating the bio-medical waste are not at all adequate in number. There are only four CBWTFs in the State, out of which only two are having incinerators, as per the relevant law. Sufficient number of CBWTFs are to be installed which is to be determined in accordance to total number of waste generated. The Tribunal finally held that but in the State of Chhattisgarh, the CBWTFs established are totally inadequate, as for instance in the entire division of Surguja and Bastar which are 150 Kms., away do not have even a single CBWTF. The State of Chhattisgarh consists of 27 districts and it has only four CBWTFs though there should be one of such at every 150 Kms., and finally issued number of directions for implementation of the Rules of 2016 which state as under: -
"40. Therefore, this Tribunal is very much concerned with the situation which exists in the State of Chhattisgarh in respect of the implementation and execution of Bio-Medical Waste (Management and Handling) Rules. It is a dire necessity that immediate steps should be taken up by the State Government for implementation of the rules (now the Bio-Medical Management Rules, 2016). Therefore, this Original Application is being disposed of with the following directions which are to be complied with in letter and spirit and with immediate affect:
I. That in the State of Chhattisgarh a State Level Committee be constituted under the chairmanship of the Chief Secretary, Secretary Medical Health and all the Divisional Commissioners, Member Secretary, CECPB, Director General, Medical and Health, State of W.P.(C)No.1509/2016 Page 26 of 33 Chhattisgarh shall be the Nodal Officer.
II. The said Committee shall immediately hold its meeting and thereafter from time to time but not beyond the period of two months.
III. The Committee shall immediately prepare a complete and comprehensive inventory of all the HCFs, as defined under Rules of 2016 and thereafter prepare the action plan regarding proper and effective implementation of the provisions of Bio-Medical Management Rules, 2016.
IV. The said Committee shall send its report, soon after preparing the action plan for implementation of the Rules to the Tribunal. Thereafter, the State Level Committee shall monitor the implementation of the Bio-Medical Management Rules, 2016 by District Level Committees and send its report in three months to this Tribunal. As soon as the Report is received, the registry shall place it before the Tribunal.
V. The State Government of Chhattisgarh shall constitute a committee at every district level who shall be responsible for implementing the action plan prepared by the State Level Committee and for effective implementation of Bio-Medical Management Rules, 2016.
VI. The District Level Committee shall consist of the District Magistrate as its Chairman and the Chief Medical Officer, Regional Officer, CEBCP and Superintendent of Police of the district to implement the provisions of Bio-Medical Management Rules, 2016 effectively and immediately. The execution/implementation of the relevant law shall be personal responsibility of every member of District Committee. The Chief Medical Officer of the district shall be the Nodal Officer."
40. Reverting to the facts of the present case after having noticed the statutory provisions and the principles of law laid down by the Supreme Court in aforesaid cases and directions issued by the National Green Tribunal with regard to establishment of CBWTF, particularly taking into consideration that the petitioner's CBWTF W.P.(C)No.1509/2016 Page 27 of 33 plant was established only for Durg, Raipur and Bhilai cities, it is quite vivid that the Act of 1986 nor the Rules of 1998 restrict or prohibit the State Pollution Control Board from establishing more than one CBWTF in a particular locality and the Rules of 2016 are not applicable. Clause D of the guidelines issued by the Central Government in the year 2003 are not statutory in nature. Even otherwise, clause D of the said guidelines though not statutory in nature, yet did not prohibit or restrict the respondent Board from establishing more than one CBWTF in a particular locality.
Further, the petitioner's CBWTF plant was not functional, the respondent Board received several complaints leading to issuance of directions under Section 5 of the Act of 1986 and submission of willingness of the petitioner to close down the unit necessitated establishment of further CBWTF at Raipur by respondents No.2 and 3 which was imminently required to be established looking to the stand, status and function of the petitioner unit. Thus, it cannot be held that there is any legal bar for establishment of CBWTF in the locality where the petitioner is operating the unit of CBWTF at present. Thus, issue No.1 is answered accordingly. Answer to issue No.2: -
41. The petitioner has challenged the order dated 31-3-2012 passed by respondent No.2 granting respondent No.5 the consent to establish CBWTF at Raipur whereas, the writ petition has been filed on 13-6-2016 after lapse of 51 months. Explanation offered by the petitioner is that they were not aware of the order dated 31-3-2012 and they got the information for the first time in the W.P.(C)No.1509/2016 Page 28 of 33 last week of February, 2016. Explanation offered is neither plausible nor acceptable. The petitioner is running the CBWTF and in constant touch with respondents No.2 and 3. Therefore, the petitioner's stand that they were not aware cannot be accepted. Delay of 51 months is an inordinate delay. The Supreme Court in the matter of State of M.P. and others v. Nandlal Jaiswal and others13, where the challenge was to establishment of distilleries by the other persons, by the distillery holder, observed as under: -
"24. ... It is also difficult to believe that the petitioners did not know that new distilleries were being constructed at new sites by respondents No.5 to
11.
The Supreme Court has further held that when the writ jurisdiction of the High Court is invoked, unexplained delay coupled with the creation of third party rights in the meanwhile is an important factor which always weighs with the High Court in deciding whether or not to exercise such jurisdiction and observed as under: -
"23. ... When the writ jurisdiction of the High Court is invoked unexplained delay coupled with the creation of third party rights in the meanwhile is an important factor which always weighs with the High Court in deciding whether or not to exercise such jurisdiction. ...
24. Here, obviously, there was considerable delay on the part of the petitioners in filing the writ petitions and in the intervening period, respondents No.5 to 11 acquired land, constructed distillery buildings, purchased plant and machinery and spent considerable time, money and energy towards setting up the distilleries. These circumstances would, in our opinion, be sufficient to disentitle the petitioners to relief under 13 AIR 1987 SC 251 W.P.(C)No.1509/2016 Page 29 of 33 Article 226 of the Constitution. ..."
42. Thus, following the principles of law laid down in Nandlal Jaiswal's case (supra), it is quite vive that the petitioner being player of the same field running the CBWTF located at Raipur allowed respondent No.5 to construct the plant making huge investment and when the plant is said to be ready for operation, at the fag end, the writ petition has been filed and as such, the delay occurred is unacceptable to the Court being unexplained and inordinate as well, therefore, the writ petition also deserves to be dismissed on the ground of delay and laches. Answer to issue No.3: -
43. Whether the grant of consent to establish CBWTF is grant of State largess? / Whether proper procedure for setting up and operation of CBWTF has been followed?
44. In this regard, the procedure prescribed in the 2003 guidelines, issued by Central Pollution Control Board, for granting permission to setup/establish CBWTF may be noticed herein profitably which states as under: -
"K. SETTING UP AND OPERATION OF CBWTF Setting up and operating a CBWTF requires compliance with a number of regulatory requirements/provisions. The important requirements/provisions are listed below:
(i) Municipal Corporations, Municipal Boards or Urban Local Bodies, as the case may be, shall be responsible for providing suitable common disposal/incineration sites for the bio-medical waste generated in the area under their jurisdiction and in areas outside the jurisdiction of any municipal body, it shall be the responsibility of the occupier generating bio-medical waste/operator of a bio-medical waste treatment W.P.(C)No.1509/2016 Page 30 of 33 facility to arrange for suitable sites individually or in association, so as to comply with the provisions of these rules (Bio-medical Waste Management & Handling) Rules).
(ii) The local body such as a Municipal Body or any Private Entrepreneur, whoever wishes to set up a CBWTF, shall submit a detailed work-plan of proposed CBWTF to the concerned State Pollution Control Board (SPCB)/Pollution Control Committee (PCC) for evaluation and issue of "Consent To Establish". The work-plan should include complete details of the project such as site details, coverage area, infrastructure set up, transportation of bio-medical waste, operating procedure etc.
(iii) The SPCB/PCC upon receipt of such work-plan shall, review the proposal and "Consent to establish" shall be issued to the proponent with the required conditions.
(iv) Once the proponent establishes the necessary infrastructure, the site and the resources shall be inspected by the SPCB/PCC for the adequacy of the facility/equipment. Upon satisfactory recommendation, the authorization under the Bio-medical Waste (Management & Handling) Rules, shall be issued with necessary condition to the proponent."
45. Thus, the above-stated guidelines permit making of an application by a person interested including private entrepreneur and detailed procedure has been indicated in the said guidelines for processing and granting consent to establish the CBWTF.
46. Apart from the guidelines issued by CPCB, the Rules of 1998 has prescribed the procedure for treatment and disposal of biomedical waste. Rules 3(8) and 3(9) of the Rules of 1998, respectively, define "occupier" and "operator of a bio-medical waste facility". Rule 4 defines duty of occupier. Rule 5 prescribes treatment and disposal of bio-medical waste. Rules 7(4) and 7(5) provide as under: -
"(4) The prescribed authority shall on receipt of Form I make such enquiry as it deems fit and if it is satisfied W.P.(C)No.1509/2016 Page 31 of 33 that the applicant possesses the necessary capacity to handle bio-medical waste in accordance with these rules, grant or renew an authorisation as the case may be.
(5) An authorisation shall be granted for a period of three years, including an initial trial period of one year from the date of issue. Thereafter, an application shall be made by the occupier/operator for renewal. All such subsequent authorisation shall be for a period of three years. A provisional authorisation will be granted for the trial period, to enable the occupier/operator to demonstrate the capacity of the facility."
47. Rule 8(2) of the Rules of 1998 obliges the operator of a bio- medical waste facility to make an application in Form I to the prescribed authority for grant of authorisation and under Rule 8(4), authorisation for operating a facility for collection, reception, treatment, storage, transport and disposal of bio- medical waste shall be issued by the prescribed authority subject to terms and conditions of authorisation. Rule 14 of the Rules of 1998, which has been brought in force with effect from 2-6-2000, imposes responsibility to Municipal Corporations, Municipal Boards or Urban Local Bodies for providing suitable common disposal/incineration sites for the bio-medical wastes generated in the area under their jurisdiction. Rule 14 further mandates the responsibility of the occupier generating bio-medical waste/ operator of a bio-medical waste treatment facility to arrange for suitable steps individual or in association to comply the Rules of 1998.
48. Thus, the permission/consent to establish CBWTF has to be granted as per the Rules of 1998 read with the guidelines of CPCB 2003 and procedure prescribed therein has to be followed while granting consent to establish. The above-stated procedure has W.P.(C)No.1509/2016 Page 32 of 33 been followed in the instant case by respondents No.2 and 3. No land has been allotted to respondents No.2 and 3 for establishment of CBWTF, only permission to establish CBWTF has been granted as per the Rules of 1998 and the guidelines of 2003 subject to terms and conditions mentioned in Annexure P-1 dated 31-3-2012 and it cannot be held that such permission could not have been granted without open and transparent selection of eligible agency. The argument raised in this behalf is hereby rejected. Thus, the issue is answered against the petitioner.
49. Having answered all the three issues against the petitioner as above and as a fallout and consequence of aforesaid discussion, I do not find any merit in the writ petition. The writ petition deserves to be and is accordingly dismissed, leaving the parties to bear their own cost(s).
Sd/-
(Sanjay K. Agrawal) Judge Soma W.P.(C)No.1509/2016 Page 33 of 33 HIGH COURT OF CHHATTISGARH, BILASPUR Writ Petition (C) No.1509 of 2016 M/s E. Tech Projects Private Limited Versus The State of Chhattisgarh and others Head Note Permission granted by State Pollution Control Board to establish Common Bio-medical Waste Treatment Facility is in accordance with law. jkT; iznw"k.k fu;U=.k cksMZ }kjk lkekU; tSofpfdRldh; ¼ck;ks esfMdy½ vif'k"V iz'kks/ku lqfo/kk dh LFkkiuk dh vuqefr iznku fd;k tkuk fof/klaxr gSA


PrivateSky is a direct collaboration between programmers and architects with 10-20 years experience in industry and researchers from the university. This effort led us to a series of significant results that promise to improve object-oriented programming. Our approach does not try to propose radical paradigm shifts, as we believe that imperative programming and object-oriented programming are rather worth to be improved and not replaced.
Although we recognize the value of functional programming or type-oriented programming (eg Haskel), a refusal to look for ways to improve OOP and imperative programming seems wrong. In this sense, the central point of our research is to replace the metaphor of "objects" with "processes" and not with pure functions, monads or other new complex abstractions. Semantically and syntactically the objects and classes are good enough, we try to add semantic improvements and on the level of pragmatics.
In the years since we worked on SwarmESB and PrivateSky projects, we have iterated new ideas that sometimes went away from current fashion and why it was considered "best practice". Changing your point of view and habits is difficult and only in retrospect can you see how obvious some ideas are. We are trying to guess which direction should be developed in relation to the current state of programming science. Although we were often disappointed with object-oriented programming (OOP), we have long looked at ways to reuse the huge experience of this programming model. We don't think the industry needs programming languages or frameworks that can only be used by geniuses who have been studying complex mathematical concepts for years. Rather, we believe that we should have tools that offered the possibility to program as close to the essential complexity of the problem (the tools should not add artificial complexity).


<my-element>
<my-element>
is an awesome element. It's a great introduction to building web components with LitElement, with nice documentation site as well.
As easy as HTML
<my-element>
is just an HTML element. You can it anywhere you can use HTML!
<my-element></my-element>
Configure with attributes
<my-element>
can be configured with attributed in plain HTML.
<my-element name="HTML"></my-element>
Declarative rendering
<my-element>
can be used with declarative rendering libraries like Angular, React, Vue, and lit-html
import {html, render} from 'lit-html';
const name = 'lit-html';
render(
html`

This is a <my-element>

<my-element .name=${name}></my-element>
`,
document.body
);


Bio Sketch
Hey! That's my brain! Move around in it, I think it'll tell you all you need to know...
Things my brain will tell you:
- I care about those rep-* words and making sure science is trustworthy
- I enjoy computational statistics, uncertainty quantification, and machine learning
- I work with brains, despite knowing very little about brains
- I enjoy teaching
- I share everything I do, including failures (see my open-Ph.D.)
- I am the proud teller of many terrible jokes
- I have a Ph.D. in Biomedical Engineering from McGill
- I have a M.S.E. in Biomedical Engineering from Johns Hopkins
- I have a B.Eng in Biomedical and Electrical Engineering from Carleton


{{ range .Site.Data.socialmedia.accounts }} {{ end }}
Copyright © {{ now.Format "2006" }} {{ .Site.Title }}. | Powered by Hugo | Diaspora Theme by Cold Cat


Relative vs Absolute vs Static vs Fixed Positioning. What do they mean?
Feb 5 2016
CSS is a programming code that let's you format and style content in HTML files. The web browser will then render the CSS, displaying the HTML content onscreen using the rules from the CSS. For instance, if you have a headline in your HTML file, you can use CSS to turn it red, use a certain font, and change the size to make it as big as you want.
You can also use CSS to reposition where the various HTML elements appear on the page. Using our headline example, you can center the text on the page and then move it a certain distance from the top of the screen. This is how you take a boring raw HTML page and turn it into an exciting, modern website.
However, CSS positioning can be very fickle, especially when you want to organize multiple elements at once. By default, CSS will either place all your elements in a single line, either vertically (so that your screen has horizontal stripes running across it) horizontally (all of your elements will appear next to each other in a single row), or a combination of the two, where some elements are stacked on top of each other and some are side-by-side. However, these default cases won't produce a good-looking website.
Instead, you need to position each element individually to arrange them properly. You can do this by setting the element's position
attribute to one of four possibilities:
- Static - this is the default positioning for all elements. The element will appears as it normally would, according to the defaults. You usually won't need to set an object's position to this since it is set by default, but you may want to change an element's position back to static if it had a different attribute assigned already.
- Relative - this lets you reposition an element relative to where it would have gone. If an element would have appeared in a certain normally, you can move it up or down, left or right from that original spot. Other elements will still act like it's in its original spot, so they will stay in their original place. This will leave a gap where the element was supposed to go originally.
- Absolute - this lets you reposition an element within its parent, and all the other elements will act like it doesn't exist. This is similar to Microsoft Word, where you set an object to appear above the text. You can move it wherever you want on the page, and the text or other objects aren't affected. If you move the page up or down, the object will move too - it is in a certain position on the page.
- Fixed - this lets you place an object on a page, but it will stay there even if ou scroll the pag up and down. It is useful for headers, footer, or sidebars, if you want those options to always be available to whomver is reading your page. All other objects will act like it doesn't exist, too.
Hopefully this post lets you understand all of the different options for positioning an object on the page using CSS. Good luck!


Airline
Flight No
Departure
Arrival
Class
Maximum Price
tax included
Flight No
Departure
Arrival
Class
Price


{% extends "base.html" %} {% block title %}Relational databases: JDBC{% endblock %} {% block body %}
Siena-JDBC lets you use the Siena API using a relational database as underlaying persistence mechanism.
Optionally you can generate or update the database schema using
siena.jdbc.ddl.DdlGenerator
. You must use the following annotations to
define the tables, columns and indexes of your database:
@NotNull
. A field annotated with @NotNull
will have a restriction of
NOT NULL
in the database. Fields that are primitive types (int
,
boolean
,...) and fields annotated with
@Id
are NOT NULL
by default.@Max
defines the maximum number of characters of a String
field.
@Max(100)
will create a column of type VARCHAR(100)
.@Text
. Fields of type String
must be annotated with @Max
or with @Text
. A field annotated with @Text
will create a
column of type java.sql.Types.LONGVARCHAR
Json
will create columns of type java.sql.Types.LONGVARCHAR
.java.util.Date
fields can be annotated with one of these:
@DateTime
, @SimpleDate
or @Time
. This will create
columns of type DATETIME
, DATE
or TIME
respectively. By default a java.util.Date
field will create a
DATETIME
column.@Index
annotation lets you define indexes. Indexes have a mandatory name.
You can create an index on multiple columns: you just need to put the @Index
annotatio with the same index name in multiple fields. If you need a column to be
in more than one index you have to pass a String
array to the annotation. Exmample:
@Index({"index_1", "index_2"}) public String someColumn;
.@Unique
has the same usage than the @Index
annotation
except that it will generate unique indexes.The DDL generation is made using Apache DdlUtils so
you will need to have Apache DdlUtils downloaded and added to your classpath.
The following is an example of how to use DdlGenerator
and Apache DdlUtils.
DdlGenerator generator = new DdlGenerator(); // add all your classes generator.addTable(Employee.class); // get the Database model Database database = generator.getDatabase(); Platform platform = PlatformFactory.createNewPlatformInstance("mysql"); Class.forName("com.mysql.jdbc.Driver"); Connection connection = DriverManager. getConnection("jdbc:mysql://localhost/database_name", "user", "pass"); // if you want to print the SQL that will be executed String sql = platform.getAlterTablesSql(connection, database); System.out.println(sql); // this will perform the database changes platform.alterTables(connection, database, true); connection.close();
The following is a possible output of the example code:
CREATE TABLE employees ( id BIGINT NOT NULL AUTO_INCREMENT, first_name VARCHAR(200) NOT NULL, last_name VARCHAR(200) NOT NULL, contact_info MEDIUMTEXT NULL, boss BIGINT, PRIMARY KEY (id) ); CREATE INDEX boss_index ON employees (boss);
Apache DdlUtils has the ability not only to create the tables but also to synchronize them.
So if you add or remove something in your model classes DdlUtils will execute
ALTER TABLE
statements. But be careful because some changes may cause
the data to be lost. For example if you add a mandatory column the data could not be
retained. Make always a backup of the important data before synchronizing the database schema.
If you want to add or remove some constraints on the database model you can manipulate the
Database
object before executing the synchronization. In addition you should
know that the addTable()
method returns a Table
object. And
finally you can access a certain table by using ddlGenerator.getTable(tableName)
.
Note: foreign keys are not supported yet (this will be fixed soon).
{% endblock %}


Class: Aws::SageMaker::Types::InputConfig
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Struct
|
|
|
Instance Chain:
self,
::Aws::Structure ,
Struct
|
|
| Inherits: |
Struct
|
| Defined in: | gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb |
Overview
Contains information about the location of input model artifacts, the name and shape of the expected data inputs, and the framework in which the model was trained.
Constant Summary
Instance Attribute Summary
-
#data_input_config ⇒ String
rw
Specifies the name and shape of the expected data inputs for your trained model with a JSON dictionary form.
-
#framework ⇒ String
rw
Identifies the framework in which the model was trained.
-
#framework_version ⇒ String
rw
Specifies the framework version to use.
-
#s3_uri ⇒ String
rw
The S3 path where the model artifacts, which result from model training, are stored.
Instance Method Summary
::Aws::Structure
- Included
| #to_hash | Alias for Aws::Structure#to_h. |
Instance Attribute Details
#data_input_config ⇒ String
(rw)
Specifies the name and shape of the expected data inputs for your
trained model with a JSON dictionary form. The data inputs are
Framework
specific.
TensorFlow
: You must specify the name and shape (NHWC format) of the expected data inputs using a dictionary format for your trained model. The dictionary formats required for the console and CLI are different.- Examples for one input:
- If using the console,
\{"input":[1,1024,1024,3]\}
- If using the CLI,
\{"input":[1,1024,1024,3]\}
- Examples for two inputs:
- If using the console,
\{"data1": [1,28,28,1], "data2":[1,28,28,1]\}
- If using the CLI,
\{"data1": [1,28,28,1], "data2":[1,28,28,1]\}
KERAS
: You must specify the name and shape (NCHW format) of expected data inputs using a dictionary format for your trained model. Note that while Keras model artifacts should be uploaded in NHWC (channel-last) format,DataInputConfig
should be specified in NCHW (channel-first) format. The dictionary formats required for the console and CLI are different.- Examples for one input:
- If using the console,
\{"input_1":[1,3,224,224]\}
- If using the CLI,
\{"input_1":[1,3,224,224]\}
- Examples for two inputs:
- If using the console,
\{"input_1": [1,3,224,224], "input_2":[1,3,224,224]\}
- If using the CLI,
\{"input_1": [1,3,224,224], "input_2":[1,3,224,224]\}
MXNET/ONNX/DARKNET
: You must specify the name and shape (NCHW format) of the expected data inputs in order using a dictionary format for your trained model. The dictionary formats required for the console and CLI are different.- Examples for one input:
- If using the console,
\{"data":[1,3,1024,1024]\}
- If using the CLI,
\{"data":[1,3,1024,1024]\}
- Examples for two inputs:
- If using the console,
\{"var1": [1,1,28,28], "var2":[1,1,28,28]\}
- If using the CLI,
\{"var1": [1,1,28,28], "var2":[1,1,28,28]\}
PyTorch
: You can either specify the name and shape (NCHW format) of expected data inputs in order using a dictionary format for your trained model or you can specify the shape only using a list format. The dictionary formats required for the console and CLI are different. The list formats for the console and CLI are the same.- Examples for one input in dictionary format:
- If using the console,
\{"input0":[1,3,224,224]\}
- If using the CLI,
\{"input0":[1,3,224,224]\}
- Example for one input in list format:
[[1,3,224,224]]
- Examples for two inputs in dictionary format:
- If using the console,
\{"input0":[1,3,224,224], "input1":[1,3,224,224]\}
- If using the CLI,
\{"input0":[1,3,224,224], "input1":[1,3,224,224]\}
- Example for two inputs in list format:
[[1,3,224,224], [1,3,224,224]]
XGBOOST
: input data name and shape are not needed.
DataInputConfig
supports the following parameters for CoreML
TargetDevice
(ML Model
format):
shape
: Input shape, for example\{"input_1": \{"shape": [1,224,224,3]\}\}
. In addition to static input shapes, CoreML converter supports Flexible input shapes:- Range Dimension. You can use the Range Dimension feature if you
know the input shape will be within some specific interval in
that dimension, for example:
\{"input_1": \{"shape": ["1..10", 224, 224, 3]\}\}
- Enumerated shapes. Sometimes, the models are trained to work
only on a select set of inputs. You can enumerate all supported
input shapes, for example:
\{"input_1": \{"shape": [[1, 224, 224, 3], [1, 160, 160, 3]]\}\}
- Range Dimension. You can use the Range Dimension feature if you
know the input shape will be within some specific interval in
that dimension, for example:
default_shape
: Default input shape. You can set a default shape during conversion for both Range Dimension and Enumerated Shapes. For example\{"input_1": \{"shape": ["1..10", 224, 224, 3], "default_shape": [1, 224, 224, 3]\}\}
type
: Input type. Allowed values:Image
andTensor
. By default, the converter generates an ML Model with inputs of type Tensor (MultiArray). User can set input type to be Image. Image input type requires additional input parameters such asbias
andscale
.bias
: If the input type is anImage
, you need to provide the bias vector.scale
: If the input type is anImage
, you need to provide a scale factor.
CoreML ClassifierConfig
parameters can be specified using
OutputConfig CompilerOptions
. CoreML converter supports
Tensorflow and PyTorch models. CoreML conversion examples:
Tensor type input:
"DataInputConfig": \{"input_1": \{"shape": [[1,224,224,3], [1,160,160,3]], "default_shape": [1,224,224,3]\}\}
^
Tensor type input without input name (PyTorch):
"DataInputConfig": [\{"shape": [[1,3,224,224], [1,3,160,160]], "default_shape": [1,3,224,224]\}]
^
Image
type input:"DataInputConfig": \{"input_1": \{"shape": [[1,224,224,3], [1,160,160,3]], "default_shape": [1,224,224,3], "type": "Image", "bias": [-1,-1,-1], "scale": 0.007843137255\}\}
"CompilerOptions": \{"class_labels": "imagenet_labels_1000.txt"\}
Image
type input without input name (PyTorch):"DataInputConfig": [\{"shape": [[1,3,224,224], [1,3,160,160]], "default_shape": [1,3,224,224], "type": "Image", "bias": [-1,-1,-1], "scale": 0.007843137255\}]
"CompilerOptions": \{"class_labels": "imagenet_labels_1000.txt"\}
Depending on the model format, DataInputConfig
requires the
following parameters for ml_eia2
OutputConfig:TargetDevice.
For TensorFlow models saved in the SavedModel format, specify the input names from
signature_def_key
and the input model shapes forDataInputConfig
. Specify thesignature_def_key
inOutputConfig:CompilerOptions
if the model does not use TensorFlow's default signature def key. For example:"DataInputConfig": \{"inputs": [1, 224, 224, 3]\}
"CompilerOptions": \{"signature_def_key": "serving_custom"\}
For TensorFlow models saved as a frozen graph, specify the input tensor names and shapes in
DataInputConfig
and the output tensor names foroutput_names
inOutputConfig:CompilerOptions
. For example:"DataInputConfig": \{"input_tensor:0": [1, 224, 224, 3]\}
"CompilerOptions": \{"output_names": ["output_tensor:0"]\}
# File 'gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb', line 21862
class InputConfig < Struct.new( :s3_uri, :data_input_config, :framework, :framework_version) SENSITIVE = [] include Aws::Structure end
#framework ⇒ String
(rw)
Identifies the framework in which the model was trained. For example: TENSORFLOW.
# File 'gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb', line 21862
class InputConfig < Struct.new( :s3_uri, :data_input_config, :framework, :framework_version) SENSITIVE = [] include Aws::Structure end
#framework_version ⇒ String
(rw)
Specifies the framework version to use. This API field is only supported for the MXNet, PyTorch, TensorFlow and TensorFlow Lite frameworks.
For information about framework versions supported for cloud targets
and edge devices, see Cloud Supported Instance ::Aws::SageMaker::Types
and
Frameworks and Edge Supported Frameworks.
# File 'gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb', line 21862
class InputConfig < Struct.new( :s3_uri, :data_input_config, :framework, :framework_version) SENSITIVE = [] include Aws::Structure end
#s3_uri ⇒ String
(rw)
The S3 path where the model artifacts, which result from model training, are stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix).
# File 'gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb', line 21862
class InputConfig < Struct.new( :s3_uri, :data_input_config, :framework, :framework_version) SENSITIVE = [] include Aws::Structure end


|
OpenSwarm
<IP_ADDRESS>
An operating system for miniature robots
|
#include "system_IO_uart_HDI.h"
#include <p30F6014A.h>
#include <stdlib.h>
#include <string.h>
#include "library/motor_led/e_epuck_ports.h"
#include "../../../os/interrupts.h"
#include "../../../os/memory.h"
Go to the source code of this file.
Macros | |
| #define | SYS_UART1_BAUDRATE 115000 |
| #define | SYS_UART2_BAUDRATE 115000 |
Functions | |
| void | Sys_Init_UART1_HDI (void) |
| void | Sys_Init_UART2_HDI (void) |
| void | Sys_Start_UART1_HDI (void) |
| void | Sys_Start_UART2_HDI (void) |
| void | __attribute__ ((interrupt, auto_psv)) |
| void | Sys_Read_UART1_ISR () |
| void | Sys_Write_UART1_ISR () |
| void | Sys_Read_UART2_ISR () |
| void | Sys_Write_UART2_ISR () |
Variables | |
| pUART_reader | read_uart_1 = 0 |
| pUART_reader | read_uart_2 = 0 |
| sys_uart_txdata * | sys_UART1_TX_data = 0 |
| sys_uart_txdata * | sys_UART2_TX_data = 0 |
| uint16 | byte_counter_uart1 = 0 |
| uint16 | byte_counter_uart2 = 0 |
Created on 27 August 2015
LICENSE: adapted FreeBSD License Copyright (c) 2015, Stefan M. Trenkwalder All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
This file provides hardware dependent code to use a uart.
Definition in file system_IO_uart_HDI.c.
| #define SYS_UART1_BAUDRATE 115000 |
Definition at line 39 of file system_IO_uart_HDI.c.
| #define SYS_UART2_BAUDRATE 115000 |
Definition at line 40 of file system_IO_uart_HDI.c.
| void __attribute__ | ( | (interrupt, auto_psv) | ) |
Definition at line 121 of file system_IO_uart_HDI.c.
| void Sys_Init_UART1_HDI | ( | void | ) |
Definition at line 51 of file system_IO_uart_HDI.c.
| void Sys_Init_UART2_HDI | ( | void | ) |
Definition at line 83 of file system_IO_uart_HDI.c.
|
inline |
Definition at line 157 of file system_IO_uart_HDI.c.
|
inline |
Definition at line 203 of file system_IO_uart_HDI.c.
| void Sys_Start_UART1_HDI | ( | void | ) |
Definition at line 103 of file system_IO_uart_HDI.c.
| void Sys_Start_UART2_HDI | ( | void | ) |
Definition at line 112 of file system_IO_uart_HDI.c.
|
inline |
Definition at line 171 of file system_IO_uart_HDI.c.
|
inline |
Definition at line 218 of file system_IO_uart_HDI.c.
| uint16 byte_counter_uart1 = 0 |
Definition at line 48 of file system_IO_uart_HDI.c.
| uint16 byte_counter_uart2 = 0 |
Definition at line 49 of file system_IO_uart_HDI.c.
| pUART_reader read_uart_1 = 0 |
Definition at line 42 of file system_IO_uart_HDI.c.
| pUART_reader read_uart_2 = 0 |
Definition at line 43 of file system_IO_uart_HDI.c.
| sys_uart_txdata* sys_UART1_TX_data = 0 |
Definition at line 45 of file system_IO_uart_HDI.c.
| sys_uart_txdata* sys_UART2_TX_data = 0 |
Definition at line 46 of file system_IO_uart_HDI.c.


Ocean [al10], ocean, in The Outer Sea ------------------------------------------------------------------------ Routes leaving Ocean: North, to Ocean [ak10], Crystal Sea, 6 days East, plain, to Herberon Fields [al11], Mandoria, 2 days South, to Ocean [am10], 6 days West, to Ocean [al09], 5 days


1 Minute
2 Minutes
5 Minutes
10 Minutes
15 Minutes
Refresh every...
Percent Change
Individual Gain/Loss
Total Gain/Loss
View Change By
Notify me if a prices moves by...
Submit
About RH Ticker
Logout
Quit


--- layout: archive title: Zulip Chat Archive permalink: /stream/113489-new-members/topic/Why.20does.20my.20goal.20change.3F.html ---
After using constructor
my goal was ?m_1 ∉ A
. Then I used cases h with p hp
, and my goal became ?m_1[_] ∉ A
. What does that mean, and why does it even happen?
MWE
That is a representation of a delayed abstraction. It means that the metavariable ?m_1
has been partially instantiated, although it still hasn't figured out what it should be yet
Ali I think it's an unwise idea in general to have metavariables in your goals. Presumably you have more than one goal at this point, and another goal is probably asking you what the metavariable is. You might want to fill in some earlier hole.
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Zone Details
Name
Name of zone.
MName
Primary master name server for this zone.
RName
Email address of the administrator responsible for this zone. (As usual, the email address is encoded as a name. The part of the email address before the @ becomes the first label of the name; the domain name after the @ becomes the rest of the name. In zone-file format, dots in labels are escaped with backslashes; thus the email address<EMAIL_ADDRESS>would be represented in a zone file as john\.doe.example.com.)
Serial
Serial number for this zone. If a secondary name server slaved to this one observes an increase in this number, the slave will assume that the zone has been updated and initiate a zone transfer.
Refresh
Number of seconds after which secondary name servers should query the master for the SOA record, to detect zone changes. Recommendation for small and stable zones:[4] 86400 seconds (24 hours).
Retry
Number of seconds after which secondary name servers should retry to request the serial number from the master if the master does not respond. It must be less than Refresh. Recommendation for small and stable zones:[4] 7200 seconds (2 hours).
Expire
Number of seconds after which secondary name servers should stop answering request for this zone if the master does not respond. This value must be bigger than the sum of Refresh and Retry. Recommendation for small and stable zones:[4] 3600000 seconds (1000 hours).
TTL
Time to live for purposes of negative caching. Recommendation for small and stable zones:[4] 172800 seconds (2 days). Originally this field had the meaning of a minimum TTL value for resource records in this zone; it was changed to its current meaning by RFC 2308.
Submit
Cancel


Unfortunately, all of our face-to-face event are on hold given the current global pandemic. We'll update this site and our our facebook page once we can dance together again.
Delicious tango right here in Brattleboro since 2000, with friendly classes, practicas, milongas, and special events. The Brattleboro Tango Community delights in welcoming dancers of all shapes, colors & sizes, regardless of genders or role preferences. We look forward to dancing with you!
Join the Brattleboro Tango Facebook group to get the latest news on Argentine Tango events in our community.
Come as you are. No partner required. Soft-soled shoes or socks - no outdoor shoes please.
Check tangomango.org for events in the region.
Ample parking on the street and behind the studio
"The only reason for mastering technique is to make sure the body does not prevent the soul from expressing itself."
- La Meri
We encourage you to dance at other nearby tango communities as well:
For videos, vocabulary and notes, check out Jim's 2017 Tango course.


226_blin00.py
INF = float('inf')
class Solution:
def getCollisionTimes(self, cars: List[List[int]]) -> List[float]:
N = len(cars)
res = [INF] * N
if N == 1:
return [-1]
# final speed of each car is the min speed of everything in front of it
# back to front
# is it true: each car collides with the first car in front of it that's slower?
# nope
min_idx = N - 1
min_spd = cars[-1][1]
# invariant: sequence of speeds i, ..., last_idx is strictly decreasing
# idx, pos, spd, min collision time
stack = [(N - 1, cars[-1][0], cars[-1][1], INF)]
for i in range(N - 2, -1, -1):
pos, spd = cars[i]
while stack and spd <= stack[-1][2]:
stack.pop()
if spd <= min_spd:
best_t = INF
# never
min_idx = i
min_spd = spd
else:
# definitely will collide with...one of the blobs in front of it
# take the min over each individual one?
"""
[[2,4],[4,5],[6,2],[10,4],[13,1],[15,4],[17,3],[18,5],[19,4],[20,1]]
me: [2.00000,0.66667,7.00000,1.00000,-1.00000,2.00000,1.50000,1.00000,0.33333,-1.00000]
expected: [2.00000,0.66667,7.00000,1.00000,-1.00000,1.66667,1.50000,0.50000,0.33333,-1.00000]
"""
best_t = INF
assert(stack)
## begin panic
if len(stack) > 100:
for j in range(len(stack) - 1, len(stack) - 1 - 50, -1):
f_idx, f_pos, f_spd, stack_t = stack[j]
t = (f_pos - pos) / (spd - f_spd)
assert t >= 0
best_t = min(best_t, t)
if best_t < stack_t:
break
for j in range(50, -1, -1):
f_idx, f_pos, f_spd, stack_t = stack[j]
t = (f_pos - pos) / (spd - f_spd)
assert t >= 0
best_t = min(best_t, t)
## end panic
else:
for j in range(len(stack) - 1, -1, -1):
f_idx, f_pos, f_spd, stack_t = stack[j]
t = (f_pos - pos) / (spd - f_spd)
assert t >= 0
best_t = min(best_t, t)
if best_t < stack_t:
break
# while stack:
# j = stack[-1][0]
# if res[j] < 0 or res[j] > best_t:
# stack.pop()
# else:
# break
assert best_t < INF
res[i] = best_t
stack_t = best_t
if stack:
stack_t = min(stack_t, stack[-1][3])
stack.append((i, pos, spd, stack_t))
# print('stack:')
# for i, pos, spd, _ in stack:
# print(i, res[i])
# print()
res = [-1 if x >= INF else x for x in res]
return res