Cooper Memorial United Methodist Church
The purpose of Venturing is to provide positive experiences to help youth mature and to prepare them to become responsible adults. Venturing is youth-led and youth-inspired. You'll acquire life skills and gain experiences that will prove to be valuable regardless of where your future takes you, all while having a blast: leadership, event-planning, organization, communication, responsibility – the list goes on!
Cooper Memorial United Methodist Church has a rich history in supporting scouting, and Venture Crew 190 is the newest addition. The Crew currently meets the 2nd and 4th Mondays of the month, at 7-8:30 PM.
Crew President
president@crew190dotcom
If you have any questions feel free to email any of our above officers.


Toggle navigation
Gainful
All Jobs
New Jobs
BC Only
Ontario Only
About
{% block content %}{% endblock %}


namespace Zeplara\Http; use RuntimeException; use InvalidArgumentException; use Psr\Http\Message\StreamInterface; use Psr\Http\Message\UploadedFileInterface; final class UploadedFile implements UploadedFileInterface { /** * @var bool */ protected moved = false; /** * @var StreamInterface */ protected stream { get }; /** * @var int|null */ protected size { get }; /** * @var int */ protected error { get }; /** * @var string */ protected clientFilename { get }; /** * @var string */ protected clientMediaType { get }; /** * @var array */ private static errors = [ 0 : "There is no error, the file uploaded with success.", 1 : "The uploaded file exceeds the size directive in php.ini.", 2 : "The uploaded file exceeds the size directive that was specified in the HTML form.", 3 : "The uploaded file was only partially uploaded.", 4 : "No file was uploaded.", 6 : "Missing a temporary folder.", 7 : "Failed to write file to disk.", 8 : "A PHP extension stopped the file upload." ]; /** * @param StreamInterface stream * @param string clientFilename * @param string clientMediaType * @param int size * @param int error */ public function __construct (stream, string! clientFilename, string! clientMediaType, size, int! error = 0 ) { if !isset self::errors[error] { throw new InvalidArgumentException("The error uploaded file is invalid."); } if !is_int(size) { if typeof size != "NULL" { throw new InvalidArgumentException("The size must be null or int."); } else { let size = stream->getSize(); } } let this->stream = stream, this->size = size, this->error = error, this->clientFilename = clientFilename, this->clientMediaType = clientMediaType; } /** * @var string targetPath */ public function moveTo(targetPath) { var handle, size; if this->error !== 0 { throw new RuntimeException(self::errors[this->error]); } if this->moved === true { throw new RuntimeException("The file has been moved."); } if typeof targetPath != "string" || targetPath === "" { throw new InvalidArgumentException("The target path should be string type."); } if this->size { let size = this->size; } else { let size = 1048576; } error_clear_last(); set_error_handler(function () { // silent fopen warning due in zephir is not supported error control operator (@) }, E_WARNING); let handle = fopen(targetPath, "wb+"); restore_error_handler(); if handle === false { throw new RuntimeException("The target path is not writable."); } this->stream->rewind(); while !this->stream->eof() { fwrite(handle, this->stream->read(size)); } fclose(handle); let this->moved = true; } /** * @return bool */ public function isMoved() { return this->moved; } }


Rotation 3: Tshirt Print, Dye Sublamation
Project Descriptions:
The first project of this cycle was making a T-shirt using photoshop. I became more familiar with photoshop and found it easy to use. I photoshopped Erin and I onto a waterfall with a Jeep on top, Michael Phelps swimming in the water along with Zac Efron in a boat. I also added a dog and two floaties in the water. This project was very fun because I already knew how to use the T-shirt printer.
The second project of this rotation was designing and printing a dye sublamation object of our choice, I chose to print on a 30" by 20.5" pillowcase. For my design I photoshopped my two friends and I onto Progressive Field and added some Indians players, a hot air balloon and the Goodyear blimp. This project was very fun to do and the dye sublamation printer was cool and a new machine for me to use. In the first picture below, it is a mirror image on the Dye Sublamation paper that I then pressed onto my pillowcase, pictured in the second picture.
The process of dye sublamation is as follows : Images are initially printed on coated heat-resistant transfer paper as a reverse image of the final design, which is then transferred onto polyester fabric in a heat press operating at a temperature around 180 to 210 C (375 F).


When the web page narrows the left column moves over the right column, thanks to col-sm-12 and float-right.
This should be the completed version of blogdrama, which should not be a standalone example.


todos
Mark all as complete
Double-click to edit a todo.
Window size:
1366
x
686
Viewport size:
1366
x
249


--- layout: example categories: example/v1.0.0 version: v1.0.0 title: Leaflet Geodesy description: Generate true geodesic circles that exhibit projection distortion using the Geodesy plugin. tags: - plugins ---


Hi,
I have put some info together to help people when they start developing for EmonCMS (like us :-)
I have forked the documentation in GitHub and want to ask for some feedback before i request it to be pulled to the original repository.
There are 2 new documents there:
- Global variables: https://github.com/CentreForAlternativeTechnology/documentation/blob/master/BuildingBlocks/emoncms/Global%20variables%20in%20EmonCMS.md
- Developing a new module: https://github.com/CentreForAlternativeTechnology/documentation/blob/master/BuildingBlocks/emoncms/developing_new_module.md
In these documents there are three things missing:
- In "Global variables": there is nothing in the $redis section
- In "Developing a new module": there is nothing either about redis in the section Using the database
- Where does EmonLogger store the log file? With the Apache logs?
Comments are very welcome (and answers to the three bullets above even more)
Cheers,
Carlos
Re: New documentation for developers
Thank you very much Carlos, your work is appreciated, I am sure many of us think so, don't know why they are so shy to say thanks :D.
Looking forward to continued work on the documentation!
Re: New documentation for developers
Hello Carlos, this looks great and very useful.
For redis is would be good to explain that redis is useful for caching any regularly accessed meta data in memory such as feed or input last values, reducing the number of hard disk writes and reads needed, if the disk is a spinning disk and there are many users and devices posting to this system it can provide a very significant performance improvement. The posts originally wrote on this can be found here: https://github.com/openenergymonitor/documentation/blob/master/BuildingB...
I think the current way EmonLogger is used is a bit unclear using log4php. I had a few problems with it recently when the log file did not exist or was not writable. I've been thinking it wouldnt be too hard to implement a native logger and have done this in the low-write-v8.5 development branch of emoncms (soon to replace the bufferedwrite branch) here's the code for the native logger: https://github.com/emoncms/emoncms/blob/low-write-v8.5/Modules/log/EmonL.... It doesnt have all the features of log4php but I like its simplicity.
Thanks again
Trystan
Re: New documentation for developers
Hi there,
Thanks for the "thanks" XarRSA :-)
And thanks Trystan for your input, i will have a look at the links and add on Monday the info about Redis.
About the logger, do you think future versions of EmonCMS will be using the native one you have written?. If this is the case i would change the whole EmonLogger section to describe how to use this new one.
Cheers,
Carlos
Re: New documentation for developers
Hi again,
I have changed the section Using the database in the file Developing a new module. Including info about REDIS, I think it is pretty clear in the document but also in my head.
The only thing missing is to put the methods of the global variable $redis in the other document, but i will do it when i know them. I am writing a Rules module and will only use MySQL but when things are ready i would like to take advantage of using REDIS. At that moment i will able to document the methods in $redis.
I have done a pull request so i guess in the following days this documentation will be availbale in the main repository.
I am loving it :-)
Carlos


--- title: The Whole Kitchen Burned Down! layout: error --- Something critically bad happened, and **PieCrust** needs to shut down. It's probably our fault. {% raw %}


amazon-chime-sdk
/
com.amazonaws.services.chime.sdk.meetings.analytics
/
MeetingHistoryEventName
/
meetingStartFailed
meetingStartFailed
meetingStartFailed
The meeting failed to start.


Latest action result:
Adding fillable fields:
Choose document:
Signature field role name
Text field role name
Back to examples list


{% extends 'layouts/base.html' %} {% block content %}
View visualisations for LDA (top) and t-SNE (bottom). The top visualisation shows the most salient words for each IHE speciality (decided by our machine learning model) and how much those words overlap with other specialities. The bottom visualisation shows the distribution and similarity of each IHE speciality, and the size of each cluster determines how similar the most salient words are.


{% extends "speechdb/base_sidebar.html" %} {% block title %}DICES{% endblock %} {% block sidebar_title %}DICES{% endblock %} {% block sidebar_content %}
Database prototype
This prototype was built during the pandemic summer of 2020. Our work was supported by a President's Research and Creative Activity grant from Mount Allison University, including funding from the J.E.A. Crake Foundation.
Database and InterfaceChris Forstall, Mount Allison University, Canada. Wyatt Stagg, Mount Allison University, Canada
DataSimone Finkmann, University of Rostock, Germany
Berenice Verhelst, Ghent University, Belgium
Dawson Fraser, Mount Allison University, Canada
Ava Waugh, Mount Allison University, Canada


Woman Wins DP Ruto's Attention After Daring Move [VIDEO]
by Samuel MbataruDuring Deputy President William Ruto’s visit at PCEA Makongeni church in Thika on November 24, an unknown woman braved her way to the podium to present her grievances, despite the heavy presence of security personnel attached to the DP.
In a video shared on Facebook, the unprecedented incident saw the woman run from her seat and knell at the DP’s feet where Ruto gave her a hand urging her to stand.
“You may stand up, I see there is a problem and I will solve it shortly,” Ruto urged the woman.
The woman went forward to hand over some written documents to Ruto who gladly received them.
In the video, plainclothes security officers are seen charging towards the woman and attempt to pull her back to her seat before the deputy president orders them to give her a seat next to him
“Don’t take her to the back, let her stay next to me. The woman has made a lot of effort to brave her way here. We will solve her problems immediately,” urged DP Ruto.
It only took a few seconds after the woman got a seat next to the second in command for another woman to approach the Dp from the other side of the congregation, also holding some papers.
The woman’s papers were well received too after which she was whisked away, but with an achievement.
Earlier on November 24, the deputy president attended a church service at the AIPCA Maguguni church in Thika East.
He later joined PCEA Makongeni together with Thika MP Wainaina wa Jungle and other leaders.
Later in the day, the Deputy President church visit culminated in a visit to the Alter Israel Holy Spirit Church and Priesthood Fellowship Church, Kahawa West, Nairobi County.
Below is a video of the dramatic incident:


Base of all table templates. More...
#include <rdb/rdb.h>
Inherited by CrossTable< ROW, DIMS >, and SimpleTable< ROW, DIMS >.
Base of all table templates.
| void insert | ( | ROW * | row | ) | [inline] |
Insert a row into the table.
| void clear | ( | ) | [inline] |
Remove all rows.


Experienced in front-end development and product management. I'm excited about creating user-friendly and accessible applications
Travel planner app helps travelers find tourguides at their vacation destination
View Demo! Source CodeGPA: 3.68
Apart from enjoying web development and product management, I love fashion & make-up. In the past, I've worked as a free-lance make-up artist for events and fashion shows. In addition, I enjoy reading and traveling. Fun fact: I'm originally from Amsterdam, the Netherlands.
I'm passionate about inclusion and diversity and I aim to reflect this through my application aswell, focusing on increasing diversity in STEM and accessible designs.


Overstat is an unofficial Overwatch Stats API written in Go. Accessing its main API endpoint is extremely simple. Perform a GET request on the main lookup endpoint defined below.
GET
https://ovrstat.com/{platform}/{username}


|
MoraLife
1.3.4
A Digital Conscience for your iOS device.
|
Conscience Bubble visualization. More...
#import <ConscienceBubbleView.h>
Properties | |
| int | bubbleType |
| type of bubble More... | |
| CGFloat | bubbleGlowWidth |
| width of black bubble outline More... | |
| CGFloat | bubbleGlowDuration |
| pulse speed of bubble More... | |
| NSString * | bubbleColor |
| color of bubble More... | |
Conscience Bubble visualization.
Implementation: ConcienceView can display the User's or Antagonist's Bubble.
The appearance and animation of the User's or Antagonist's bubble.
Bubble Color is customizable by the User and populated by userConscienceBody Bubble Animation speed is determined by Conscience's mood and enthusiasm
|
readwritenonatomicstrong |
color of bubble
|
readwritenonatomicassign |
pulse speed of bubble
|
readwritenonatomicassign |
width of black bubble outline
|
readwritenonatomicassign |
type of bubble


Administration Building with Rooftop Greenhouse / Kuehn Malvezzi
- Curated by Paula Pintos
- about 12 hours
Other Public Administration Buildings · Oberhausen, Germany
- version="1.0" encoding="UTF-8"? Architects: Kuehn Malvezzi
- AreaArea of this architecture projectArea: 7839.0 m2
- version="1.0" encoding="UTF-8"?YearCompletion year of this architecture project Year: 2019
- version="1.0" encoding="UTF-8"?PhotographsPhotographs: hiepler, brunier,
- version="1.0" encoding="UTF-8"?ManufacturersBrands with products used in this architecture project Manufacturers: Batiment, Rabensteiner Brixen / Bressanone, Wittmunder Klinker Neuschoo
- Lead Architect Kuehn Malvezzi
- Design Team Margherita Fanin, Rebekka Bode, Felix Rohde, Konstanze Beelitz, Anna Naumann, Moritz Scheible, Francesco Pizzorusso, Martin Löffler, Karin Fendt, Peter Franz Weber
- Clients OGM Oberhausener Gebäudemanagement GmbH
- Structural Engineer Frankenstein Consult, Berlin
- Landscape Atelier Le Balto, Berlin
- Consultant - Fire Protection Specialist Hagen – Ingenieure für Brandschutz, Kleve
- Consultant - Building Services HL-Technik, Munich
- Consultant - Building Physics Müller BBM, Gelsenkrichen
- Consultant - Building Surveillance Architecture HPP, Dusseldorf
- Collaborator - Greenhouse Planner Haas Architekten, Berlin
- Collaborator - Control and Information System Double Standards, Berlin
More Specs Less Specs
Text description provided by the architects. The office building in the center of Oberhausen combines the diverse functions of a public administrative building and rooftop garden in a new way, integrating features of both typologies. The tension between the physicality of the brick building and the delicate lightness of the greenhouse creates a new identity that affects the urban context of the Altmarkt, an important location in the city.
A vertical garden connects the square with the roof garden. Developed in collaboration with landscape architects Atelier Le Balto, it is an effective urban planning element that purposefully combines the old and new landscape typologies as a public space. A varied course leads visitors from the tree-lined market square up steps and platforms, past climbing plants and seating areas, to the roof. From the rooftop, the view opens up over the historical center of the city.
A part of the rooftop greenhouse, which was planned in cooperation with Haas Architekten, is a research area used by the Oberhausen-based Fraunhofer Institute for Environmental, Safety and Energy Technology, to realize its concepts in the field of building-integrated agriculture.


A Good Neighbor is a Priceless Treasure
With Thanksgiving rapidly approaching, we at Mile Two have plenty to be thankful for. In our first full year we have been through tons of change and countless challenges associated with getting a new business off the ground. We have moved offices twice, hired 8 amazing team members, and had the honor of working with our customers to create new possibilities through technology.
In the spirit of thankfulness, the team at Mile Two donated $1000 in turkeys to our neighbor, The Good Neighbor House, to help provide a full Thanksgiving dinner to others in the community.
As the holiday season kicks off this week, Mile Two is thankful for the opportunity to contribute innovative solutions to our customer’s problems. We are thankful for the team we have built. We are thankful for all of our family and friends that have supported us along the way. And last but not least we are thankful for the opportunity to lend a hand to our neighbors in the community!


When the comedown outweighs the good times
My third experience of BZP went like this...
The setting was a large happy occasion with very good friends and lots of so-called 'herbal E', which were basically just differing doses of BZP pills. Around 10pm we took our first pill and throughout the night we took about 2 or 3 and a half - Red Rockets, EFX and something else. They took about an hour to take effect, but itís hard to tell as I wasnít really timing. At first, we had a great time with great laughs, but this probably would have happened anyway with this group. Physically & mentally, there was increased energy but not enough to have any of us bother leaving our seats, we were perfectly comfortable where we were and werenít bothered dancing or anything like it.
In fact, whenever I was standing I just wanted to sit down. Visually, there were some distortions of distance but nothing troublesome. The time distortion was quite noticeable and it always seemed later than it was. Thirst was increased and kept increasing as the night went on. At some point we took a half a pill. We smoked hash joints most of the time but not that much of it - maybe one every hour or so.
At about 3am, we went back to a friendís house and all was still great. We were anxious for everyone else to get back as we didnít have the energy to sustain the buzz between the three of us. I felt a bit spacey in a mashed way (monged) and quite trippy - when I closed my eyes, there were some mild visuals and these would increase if I kept my eyes closed or if I concentrated on them, but I didnít want to trip out and leave my mates. The mashed feeling was like a mixture between being tired/exhausted and buzzing. We had had a long day so I wrote off the tired effects to this. Then we decided to take another pill so that we could properly enjoy the rest of the night. At some point, I think there was another pill taken but I canít quite remember.
I was high and happy for a while but still only ever felt like sitting down and whenever I did get up to go to the toilet, I staggered now and then. Urinary retention was very frustrating and is possibly the worst part of this chemical. Also I was feeling quite nauseous and thought I was going to get sick lots of times. So my night was interrupted by frequent trips to the toilet to either not actually urinate or to not get sick - very frustrating. We smoked when we were back in my friendís house but not that much.
I started to get a headache - sharp pain near the back of my head, I think - which felt like a tension headache. I was feeling fuzzy round the edges and couldnít really get comfortable. I was enjoying glorious music but couldnít get totally into it. It was like half-tripping, half-monged, spacey and half-involved in the party. Normally I would be very involved and having a great laugh, but the chemical overtook that and I eventually didnít feel alert or engaged. I also kept forgetting what the conversation was about, or what part of the conversation was about. However, there was no way I could sleep. At some point the nausea was joined by a sharp, cutting pain in my stomach (not my abdomen), which was worse for moving, particularly bending, even slightly.
The nausea, headache, visuals and spaced feeling but with general restlessness kept me up til about noon - definitely 12 hours after the first one and possibly 6 hours after the last one (canít be too sure). Went to bed around 11am and got up every few minutes to try to go to the toilet - the urge was great but the success was about 1 in 3 attempts. It was really hard to get to sleep with the stomach ache, headache, urinary retention, restless legs and visuals on closing the eyes. Accompanying this were trains of thought about nothing and going nowhere, all of which Iíve forgotten anyway, but I remember realising that I was talking crap to myself.
I finally got an hour of sleep before I had to get up for something. I felt like Iíd been run over by a train and looked like death, though my mood was fine - not narky or depressed. Had to drive somewhere before sleeping and was fine on the road, though I was obviously a bit scared. Slept for a few hours then before getting up, eating half a pizza and doing another one of the pills - EFX. This took effect in about an hour and the nausea came back. Had a great time chatting, laughing, being engaged and so on. This lasted for a while, but Iíve no idea how long - a few hours anyway.
Once this started to wear off and I started to come down, it was the same as the night before with the trippy effects, the disengagement and the spaced feeling. The disengagement was one where I was happy listening to others and was able to follow threads of conversation, but I knew that by the time I said what I thought, Iíd not be interested in it anymore and would regret having bothered at all. This was quite annoying as it meant I was dependent on others for entertainment, even though there was stuff happening in my head and they were good friends. Luckily there was someone being entertaining and energetic and when they left, I went to bed. The nausea continued & the urine retention as before. I got to sleep in about an hour or less, due to being completely wrecked most likely as it was about 10am at this point - making it about 36 hours since the first pill, with about 5 hours sleep in between.
Two days later, reflecting on that experience and the 2 experiences before that, I decided to never take them again. The comedown takes forever and since time is distorted, it seems like the high lasts about 2 or 3 hours but the comedown lasts about 12 hours. (In reality, this may be quite different but who cares, itís the subjective experience that counts). I mostly remember the urine retention, nausea, headache and disengagement - a party these things do not make. Three days later I still donít feel 100% in my mind, eyes, head or stomach but am recuperating. Iíve read the background info on BZP but it feels like itís doing much more harm than any of the reports give you a clue about.
Not recommended if you like a clean buzz.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Show any changing geospatial data over time, from points to polygons.
If you want smooth motion of markers from point to point, this is not your plugin. Please check out LeafletPlayback, or for real-time data, try Leaflet Realtime, both plugins from which I may or may not have pilfered some ideas.
To run the examples locally, run npm run build
and then open the one of the
examples in docs/examples
.
USGS provides GeoJSON(P) files with earthquake data, including time and
magnitude. For this example, that data is read, parsed to the right format
(start
and end
values in the GeoJSON properties
), and added to a
Leaflet.timeline
.
I found some historical country border data here, though unfortunately it was not in GeoJSON. I converted it with ogr2ogr:
$ ogr2ogr -f "GeoJSON" \
-select CNTRY_NAME,COWSYEAR,COWSMONTH,COWSDAY,COWEYEAR,COWEMONTH,COWEDAY \
borders.json cshapes.shp
then wrangled the data into the right format (docs/examples/borders-parse.js).
After that, it was just a matter of passing the data to Leaflet.timeline
and
letting it handle everything.
There are actually two classes here. L.Timeline
and L.TimelineSliderControl
.
L.Timeline
L.Timeline
is a subclass of L.GeoJSON
, so use it as you would that. The data
you pass in should be something like this:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"start": "1970-01-01",
"end": "2014-12-04"
},
"geometry": { ... }
}
]
}
Though you can also pass in a getInterval
function to parse the data as you
wish. (see below)
The date can really be any numerical value -- if you're using this for timed data, a Unix timestamp (the ms version for easier JS usage) probably makes sense.
see also all GeoJSON's options
getInterval
(Function -- optional)This is a function which should return an object with start
and end
properties. By default it assumes a structure as above.
drawOnSetTime
(Boolean -- optional, default true
)Make the layer draw as soon as setTime
is called. If this is set to false, you
will need to call updateDisplayedLayers()
manually when you want it to
actually update.
change
Fired when the selected time changes (either through manually sliding or through playback).
L.TimelineSliderControl
This is the actual control that allows playback and whatnot. It can control
multiple L.Timeline
s.
start
default: earliest start
in GeoJSON
The beginning/minimum value of the timeline.
end
default: latest end
in GeoJSON
The end/maximum value of the timeline.
position
default: bottomleft
Position for the timeline controls. Probably doesn't really matter as you'll likely want to expand them anyway.
formatOutput
default: (date) -> date.toString()
A function that takes in a Unix timestamp and outputs a string. Ideally for formatting the timestamp, but hey, you can do whatever you want.
enablePlayback
default: true
Show playback controls (i.e. prev/play/pause/next).
enableKeyboardControls
default: false
Allow playback to be controlled using the spacebar (play/pause) and right/left arrow keys (next/previous).
steps
default: 1000
How many steps to break the timeline into. Each step will then be (end-start) /
steps
. Only affects playback.
duration
default: 10000
Minimum time, in ms, for the playback to take. Will almost certainly actually
take at least a bit longer -- after each frame, the next one displays in
duration/steps
ms, so each frame really takes frame processing time PLUS
step time.
showTicks
default: true
Show tick marks on slider (if the browser supports it), representing changes in value(s).
waitToUpdateMap
default: false
Wait until the user is finished changing the date to update the map. By default, both the map and the date update for every change. With complex data, this can slow things down, so set this to true to only update the displayed date.
autoPlay
default: false
Slider starts playing automatically after loading.
setTime
Sets the current timeline time. Will parse any dates in just about any format you throw at it.
getDisplayed
Returns the original GeoJSON of the features that are currently being displayed on the map.
To get the project running locally, clone this repo and run these commands within the project folder:
npm install
npm test -- --watchAll
To view the examples, you'll need to build:
npm run build
Then open up the HTML files in the "docs/examples" folders in your browser.
Please create a pull request from your fork of the project, and provide details of the intent of the changes.
times
is no longer shared among all Timeline instancesgetDisplayed
and event timingwaitToUpdateMap
option to allow dragging the slider without updating
the map until user is doneGenerated using TypeDoc


This grid example uses the ui-grid-cellNav directive to add cell navigation. To enable, you must include the 'ui.grid.cellNav' module and you must include the ui-grid-cellNav directive on your grid element.
Documentation for the cellNav feature is provided in the api documentation, in particular:
CellNav allows you to navigate around the grid using the arrow keys, pg-down and pg-up, enter (moves down), shift-enter (moves up), tab (moves right) and shift-tab (moves left). When combined with the editable feature, the left-right arrow keys will be subsumed when in "deep edit" mode, allowing you to move around within the text you're editing. The tab key and shift-tab keys continue to function.
Uses the gridOptions.onRegisterApi callback to register the on_cellNav event and log when the cell is navigated.
Provides an example of requesting a scroll to a specific row or column programatically - useful for remembering the state of a page and scrolling back to that position when a user returns.
Provides an example of scrolling to and setting the focus on a specific cell, using the scrollToFocus api.
Provides an example of utilizing the modifierKeysToMultiSelectCells option and getCurrentSelection API function to extract values of selected cells.


{% extends 'en/index.html' %} {% block blurb %}Could not find the location you entered ("{{ input| e }}")! Please try a different location.{% endblock %}


Welcome to AnWriting!
Use the buttons above to choose a type of writing to work on. The easy mode will show you where the articles (a/an/the) have been removed, and the regular mode will not give you any clues. You'll just have to check around the Singular & Countable Nouns


API server key
Server Key is required.
Push Token
Push Token is required.
JSON payload:
Have you added any payload ?
Send Notification
Remember
Load Old
Clear
Path of P12 file
P12 certificate is required.
Passphrase
Upload certificate
Certificate available
Push Token
Push token is required.
Enter JSON payload:
Send Notification
Remember
Load Old
Clear


Gateway
BOT
19-Jul-18 09:59 AM
[dscrdeql] <Steve10> Good morning (here), afternoon, and evening everyone!
[dscrdeql] <Jellysmash> good morning to you @Steve10
[dscrdeql] <GoldMine> Nice ..
[dscrdeql] <edsky> morning
[dscrdeql] <GoldMine> @edskymorning to you too
[dscrdeql] <Steve10> I see we're 24 hrs or so from an exchange announcement
[dscrdeql] <KQweci> Morning @Steve10
[dscrdeql] <edsky> evening here thanks anyway @GoldMine
[dscrdeql] <Steve10> I wasn't around for the beginning of eqli, since I just showed up, did they ever do an airdrop for kmd holders?
[dscrdeql] <x2maano> lunch time
[dscrdeql] <donaldmathers> Morning
[dscrdeql] <Steve10> @edsky I'm guessing you're in Australia or in that general area?
[dscrdeql] <PERLANGER> im from australia
[dscrdeql] <edsky> Hi Steve yeah mate I'm from Australia
[dscrdeql] <PERLANGER> Steve sounds like a very aussie name
[dscrdeql] <Jellysmash> yea, it does sound like that
[dscrdeql] <Jellysmash> we're mostly from australia
[dscrdeql] <PERLANGER> steve irwin rip
[dscrdeql] <Jellysmash> except those that aren't
[dscrdeql] <Jellysmash> actually , just jokeing...people from all over the world here
[dscrdeql] <Steve10> @PERLANGER @edsky that's a country I wish to visit some day. Closest I got was the Philippines. I'm American but cool to know my name would fit in lol
[dscrdeql] <PERLANGER> yeah id be very suprised if everyone was aussie
[dscrdeql] <Steve10> Steve Irwin was the best
[dscrdeql] <edsky> I'm actually american but live in australia
[dscrdeql] <Steve10> Nice
[dscrdeql] <PERLANGER> he was abit over the top but yeah.. not a national treasure like everyone says... he annoyed animals alot of people took offence to his shenanigans
[dscrdeql] <Steve10> Lol I'm sure he got people here mad too. I just liked his enthusiasm for life that came across the screen.
[dscrdeql] <PERLANGER> your a wise man steve
[dscrdeql] <Steve10> Lol thanks but if you saw some of the trades I've done in the past you might think otherwise lol... I am learning from those bad trades tho so I have a chance haha
[dscrdeql] <Jellysmash> steve irwin loved jumping onto animals
[dscrdeql] <Jellysmash> kinds of not surprised what happened to him
[dscrdeql] <Jellysmash> oh looks like i leveled up
[dscrdeql] <Jellysmash> noice
[dscrdeql] <Steve10> @jellysmash oh no he was a nut in my opinion. Was surprised it was a ray that took him out
[dscrdeql] <Jellysmash> yea, would have expected a crocodile to have done that years earlier
[dscrdeql] <Steve10> Crap just realized the time, got to get ready for the day..
[dscrdeql] <Steve10> Yea the crocs would have been the favorite if there was betting going on.
[dscrdeql] <Steve10> Got to run, I'll be back later!
[dscrdeql] <PERLANGER> bye steve
[dscrdeql] <AndronicusBass-Founder> Yeah, many of us Aussies.


latitude:
longitude:
get weather forecast
location
weather
Detail
detail
Sun
sunrise
Zoom =
You need an API key for openweathermap.org
here


Add new keyboard shortcuts by setting a url pattern, key sequence, and a sequence of operations. Url patterns follow js regex (e.g. ^https?://(www\.)?google\.com.*). Key sequences consist of short name of key delimited by + (e.g. alt+shift+s). Actions are a sequence of operations to accomplish an action. See Wiki for additional details.
| Key Sequence | Description | |||
|---|---|---|---|---|
{{key.sequence}} |
{{key.name}} |
|||


Javascript app and code framework (v0.3 beta)
MetaphorJs is an app framework similar to AngularJs and ExtJs. Also, it is a code framework on top of which (including or excluding the app framework functionality) you can create your own libraries.
Please note that class and function names found in this documentation may or may not be exposed in global MetaphorJs object - it depends on the build. The MetaphorJs object itself can also be hidden.
MetaphorJs neither has nor does provide functionality such as jQuery provides. It also does not depend on any such library.
Browser support: IE6+, Firefox, Chrome (desktop/android), Opera, Safari (desktop/iOS), Blackberry, Android native
app
,
bind
, bind-html
,
class
,
cmp
, cmp-prop
,
config
,
each
, each-in-store
,
show
, hide
, if
,
ignore
,
include
, transclude
,
init
,
model
,
options
,
src
,
view
,
click
, dblclick
, etc.
disabled
, selected
, etc
filter
,
join
,
l
,
limitTo
,
linkify
,
lowercase
,
p
,
sortBy
,
toArray
,
split
,
ucfirst
,
uppercase

<input mjs-model=".name"/>

Hello, {{.name}}!

MetaphorJs exposes a mechanism of creating and extending classes in global or encapsulated namespaces.
By default, MetaphorJs provides encapsulated namespace (MetaphorJs.ns) and class system (MetaphorJs.cs) which you can expose during build phase or later.
// initialization cycle:
// 1. $constructor (call parent constructor with this.$super())
// 2. mixin's $beforeInit (mixins are not classes, they don't have $super(); '$beforeInit's
// are called in order mixins are specified)
// 3. plugin's $beforeHostInit (plugins are classes, they their own $super())
// 4. $init (call parent $init with this.$super())
// 5. mixin's $afterInit
// 6. plugin's $afterHostInit
// destroy cycle (call instance.$destroy())
// 1. mixin's $beforeDestroy method
// 2. plugin's $beforeHostDestroy method
// 3. instance's destroy() method
// 4. mixin's $afterDestroy method
// 5. plugin's $destroy method
// the $destroy method will nullify all instance properties and methods.
// if you want to prevent this, return false from your destroy() method.
// define(methodsAndProperties, statics)
MetaphorJs.cs.define({
$class: "My.Person",
firstName: null,
lastName: null,
$constructor: function(firstName, lastName){
// if you want to use plugins, this function must set them up
// (probably take them from config)
// you can't define plugins in class's definition; this is "run-time" only.
this.$plugins = [...];
// call parent constructor
this.$super();
},
// the class itself can't have $beforeInit and $afterInit methods
// they come from mixins
$init: function(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
this.$super();
},
getName: function() {
return this.firstName + " " + this.lastName;
}
});
// define() returns newly created classes,
// so you can avoid using $class names.
var mixin = {
$beforeInit: function() {
// will be called before host class initialized
},
$afterInit: function() {
// will be called after host class initialized
},
mixinFunc: function() {
}
};
MetaphorJs.cs.define({
$class: "My.ExtendedPerson",
$extends: "My.Person",
$mixins: [mixin], // or ["MixinName"] where it was added to namespace as mixin.MixinName
age: null,
$init: function(firstName, lastName, age) {
this.$super(firstName, lastName);
this.age = age;
},
getAge: function() {
return this.age;
}
});
MetaphorJs.cs.define({
$class: "PluginClass",
$init: function(hostObject, hostObjectArguments) {
// plugin's $init and $constructor receive host object
// as the first parameter, and
// host's arguments as the second.
},
// called after $beforeInit and before $init
$beforeHostInit: function() {
// this function receives
// the same parameters as host's constructor
},
// called after $afterInit
$afterHostInit: function() {
// this function receives
// the same parameters as host's constructor
}
// and yes, plugins can have their own plugins :)
});
MetaphorJs.cs.define({
$class: "PluginHost",
$constructor: function(cfg) {
this.$plugins = cfg.plugins;
}
});
var host = new MetaphorJs.PluginHost({
plugins: [PluginClass]
});
// you can use $extend shortcut to avoid calling "define()"
// and there is a cs.BaseClass.$extend you can start with.
var ClassWithoutName = MetaphorJs.My.ExtendedPerson.$extend({
getAge: function() {
return this.$super() * 10;
}
});
// you can also extend your own classes:
var PrototypedClass = function() {
// this will become $constructor
};
PrototypedClass.prototype.someMethod = function(){};
MetaphorJs.cs.define({
$class: "SomeClass",
$extends: PrototypedClass,
$constructor: function() {
this.$super(); // call PrototypedClass constructor
}
});
// instantiate with variable number of arguments:
MetaphorJs.My.ExtendedPerson.$instantiate(["John", "Smith", 30]);
var person = MetaphorJs.cs.factory("My.ExtendedPerson", "John", "Smith", 30);
var another = new MetaphorJs.My.ExtendedPerson("Jane", "Smith", 29);
var ns = new MetaphorJs.lib.Namespace; // global namespace
var cs = new MetaphorJs.lib.Class(ns); // global class system
var encapsulated = {};
var encNs = new MetaphorJs.lib.Namespace(encapsulated); // hidden namespace
var encCs = new MetaphorJs.lib.Class(encNs); // hidden class system
cs.define({
$class: "My.TestClass"
});
// window.My.TestClass
encCs.define({
$class: "My.TestClass"
});
// encapsulated.My.TestClass
// in the default namespace you can use both
// "MetaphorJs.Any.Thing" and "Any.Thing" - it is the same.
// Your class will be available as MetaphorJs.Any.Thing
mjs-app
directive instantiates an App class (MetaphorJs.cmp.App by default).
You can provide your own class name as a value of this attribute. Your class must extend MetaphorJs.cmp.App
MetaphorJs.define({
$class: "My.App",
$extends: "MetaphorJs.cmp.App",
initApp: function() {
this.value('someDependency', someValue);
this.onAvailable("componentId").done(function(cmp){
// do stuff when component is available
});
}
});

You can also instantiate an app without mjs-app
directive any time you want.
MetaphorJs.initApp(elem, stringClass, objectData, autorun).done(function(app){
// if autorun = false
// so something with the app: provide values and services, subscribe to events, etc
app.run();
});
// by default autorun = true
mjs-bind
and mjs-bind-html
directives replace element's content
with variable's value.

If you use mjs-bind
on a input/textarea/select/checkbox/radio field,
field's value will be changed. This is a one-way binding, so changing field's value
manually will not change the variable.
Inline binding works within any text or attribute (except special mjs-
attributes):
{{.text}}

You can insert variables {{.a}} {{.b}} {{.a + .b}} wherever you want.

Use mjs-bind-html
if you want to insert html. Otherwise, html tags will be escaped.
This attribute toggles element's class. There are two ways of providing class names:
mjs-class=".variableName"
-
this way the class will change as soon as variable changes.mjs-class="{class1: .var1, class2: .var2}"
- this will toggle classes
based on how variables resolve to true/false state.See Components section.
mjs-config="{property: 'value'}"
allows you to provide
config variables to some components. Although the faster way of doing this is by using
data-
attributes: data-property="value".
This will come handy when configuring mjs-each
mjs-each
directive generates repeated content based on array of values.
mjs-each-in-store
does the same but with data stores (see Model).

{{.name}}

You can use filters such as filter
, sortBy
, limitTo
:
mjs-each="name in .list | sortBy:$ | limitTo:1"
Config options: (via mjs-config
or data-
)
trackBy
: identify items by this property ($ - for item itself)buffered
: render only visible part of the listitemSize
: in or for buffering to work you must provide item width or heightitemsOffsite
: how many items to render outside visible areastub
: tag name of top and bottom stubs (default: div)horizontal
: what type of scrolling will be used (default: false)animateMove
: animate items changing place
(applies translateX/Y properties during mjs-move stage.
See Animations)id
: make this component available via $app.onAvailable("...")pullNext
: (each-in-store) automatically pull next page from remote sourceobservable
: make this component observable (list.on("event", fn)
).
Events:
These three show or hide content based on variable value.
mjs-show=".var"
: show element if .var is true (applies display="none")mjs-hide=".var"
: hide element if .var is true (applies display="none")mjs-if=".var"
: show element if .var is true (removes element from dom)Ignore given element and all its children
Replaces element's content with a template.
(Original content will be available via mjs-transclude
)

<mjs-template id="tpl2">

Template content

</mjs-template>
<template id="tpl3">

Template content

</template>

Transcluded text

<mjs-include src=".tpl"></mjs-include>

Executes an expression agains current scope. You can initialize variables this way
mjs-model
applies to input fields and
is similar to mjs-bind
except that it works in both directions.
<input mjs-model=".var"/>
The directive is configurable two options:
type
: data type (number|date|bool); (for now only number is recognized)binding
:
mjs-bind
)
Renders option list from array of values. The format is either:
mjs-options=".varName"
or mjs-options="{ ... } in .varName"
where
{ ... } is item config (default item config is {name: .item, value: .$index}.
Config recognizes the following keys:
name
: (string) option namevalue
: (string) option valuedisabled
: (bool) is option disabledgroup
: (string) option groupdisabledGroup
: (bool) is option group disabled<select mjs-init=".list=['Jane', 'John', 'Jack']" mjs-options="{name: .item, value: .$index} in .list">
</select>
Sets and changes image's src attribute. Configurable with two options:
deferred
: only load images when they are visible on screennoPreload
: do not use image preloaderSee Views
Executes an expression against current scope on dom event.
The full list of event directives:
mjs-click
,
mjs-dblclick
,
mjs-mousedown
,
mjs-mouseup
,
mjs-mouseover
,
mjs-mouseout
,
mjs-mousemove
,
mjs-keydown
,
mjs-keyup
,
mjs-keypress
,
mjs-submit
,
mjs-focus
,
mjs-blur
,
mjs-copy
,
mjs-cut
,
mjs-paste
,
mjs-enter
These boolean directives add or remove respective attribute based on scope value:
mjs-selected
,
mjs-checked
,
mjs-disabled
,
mjs-readonly
,
mjs-open
,
mjs-required
.
There are two types of filters: input filters and output filters. Input filters work in
conjunction with mjs-model
, they process user input before applying to the scope.

{{.var | filterName:filterParam}}

<input mjs-model="filterName:filterParam >> .var"/>
It is possible to use both input and output filters in the same expression.
Filters array
by
: object|string|function|regexp (via plain string or expression)
object
: {key: checker} compare item values to these values.string
: same as {$: string}function
: same as {$: function}regexp
: same as {$: regexp}opt
: string|bool (via plain string or expression)

{{.name}}

Sorts array by a given field in a given direction

{{.name}}

Transforms array into a string
Limits arrays and strings to a given number of items/chars.
Transforms plain text links into html links.
value.toLowerCase()
value.toUpperCase()
Upper case first char
Any non-array value will become [value]
Split given string value
<textarea mjs-model='split:"\n" >> .list'></textarea>
See I18n
See I18n
MetaphorJs.cs.define({
$class: "MyComponent",
$extends: "MetaphorJs.cmp.Component",
templateUrl: "/path/to/some/template.html", // or
template: "templateId", // or
template: ".varName", // or
template: '
any html
', // or none at all
as: "ctrl",
id: "myCmp",
initComponent: function(scope, node) {
console.log("initialized");
},
someAction: function() {
console.log("action!");
this.trigger("action", this);
this.scope.$app.trigger("someEvent", this);
}
});

Click me

Components may have their id
set via config or as element's id property.
When component have an id, you can use scope.$app.onAvailable("myCmp").done(function(cmp){})
.
Any data specified in mjs-config
or as data-*
will be automatically
applied to component: so that if you set data-my-prop="1"
then inside your component
it will be this.myProp
.
If any of the child elements of the component has mjs-cmp-prop="whatever"
then
this element will be available inside component as this.whatever
. Although,
this will not happen on initialization time but after component is rendered. You may need
to override afterRender: function(){}
to initialize things on child elements.
Components are observable so
you can subscribe to component events: cmp.on("action", function(cmp){});
,
cmp.on("destroy", function(cmp){});
. This
makes communication between components easy.
In fact, the $app object is also observable: scope.$app.on("someEvent", function(){});
You can create components dynamically:
var cmp = new MetaphorJs.MyComponent({
template: '

', // you can override any option
renderTo: document.getElementById("someTarget"),
callback: {
render: function() {
console.log("rendered!");
}
}
});
Apart from dependency injection component may also have its own resolve functions:
MetaphorJs.define({
$class: "MyComponent",
$extends: "MetaphorJs.cmp.Component"
// instance properties
}, {
// static properties
resolve: {
propertyName: function() {
// return value or a promise
},
anotherProperty: ['$node', '$parentCmp', '$scope', function(node, parentCmp, scope){}]
},
template: '...',
templateUrl: '...'
});
If template
is specified in static properties it will be resolved before
component initialization. propertyName
and anotherProperty
will be
available as this.propertyName
etc.
If component has some dependencies, you can use resolveComponent
function.
resolveComponent("MyComponent", {template: ".varName", renderTo: ...}, scope).done(function(cmp){
// do something with cmp
});
This will resolve all static "resolve" properties and dependencies. This actually works with any class including views and app itself.
If you add mjs-cloak
attribute to the component's element,
it will be hidden until component is resolved. If attribute's value is not empty,
it will be added as a class name, otherwise - style.visibility = "hidden"
.
View is a container that switches Components/Templates based on current url or a scope variable.
When you create your own view, it must extend MetaphorJs.cmp.View
class.
Url view:
MetaphorJs.define({
$class: "MyUrlView",
$extends: "MetaphorJs.cmp.View",
route: [
{
template: 'test-template', // no component here
"default": true
},
{
reg: /^\/1$/, // regular expression to identify component by.
// these are checked not against location.href
// but against MetaphorJs.history.currentUrl()
// which is basically anything after host:port.
cmp: "Test.MyComponent"
},
{
reg: /^\/2\/(\d+)$/,
params: ["param"], // all matches starting from 1 can be identified as params
// starting from index 0.
// params will be available in the component
// as this.paramName
cmp: "Test.MyComponent2"
}
]
});

Cmp view:
MetaphorJs.cs.define({
$class: "MyCmpView",
$extends: "MetaphorJs.cmp.View",
cmp: ".varName",
defaultCmp: "SomeComponent" // optional
});

or

You can create as many views as you like.
MetaphorJs supports two formats of declaring dependencies:
['dep1', 'dep2', ..., function(){}]
and
ClassName.inject = ['dep1', 'dep2', ...]
.
Directives, Components and Views are automatically passed through
scope.$app.inject(injectable, context, currentValues, callArgs)
function. It may or may not return promise, depending on whether there were
dependencies.
You can provide dependencies on app's initialization time or later.
MetaphorJs.cs.define({
$class: "MyApp",
$extends: "MetaphorJs.cmp.App",
initApp: function() {
this.value("name", someValue);
}
});
// or
scope.$app.value("name", someValue);
$app.value(name, value)
: value can be anything$app.constant(name, value)
: value can be anything, but you can use name only once$app.factory(name, fn, context, singleton)
: a function
called in given context (fn.apply(context)
) which returns some value.
If singleton = true, the function will be called only once. Can have its own dependencies.$app.service(name, classConstructor, singleton)
:
returns new classConstructor
. Can have its own dependencies.$app.provider(name, fn)
: name without "Provider" at the end. fn returns an object
with $get: function(){}
. This will turn into $app.factory(name, obj.$get, obj).
Can have its own dependencies.$app.resolve(name, currentValues)
-> returns either a value or a promise.Default dependencies available in every app:
$app
- the app itself$lang
- See I18n$rootScope
- app's root scopeDefault dependencies available when resolving directives (including mjs-cmp
):
$parentCmp
- parent component$scope
- current scope$node
- current element$config
- in mjs-cmp
See mjs-include
MetaphorJs data model consists of three classes:
Model
, Record
and Store
The Model class keeps information about how to fetch and configure records and stores.
MetaphorJs.define({
$class: "MyModel",
$extends: "MetaphorJs.model.Model",
type: "MetaphorJs.model.Record", // or your class; optional
fields: {
name: {
// store and restore params
}
},
store: {
// store config
load: { // how to load records
url: "...", // can use this string directly: load: "..."
// url can also be a function which returns data or promise
method: "GET" // optional
// more ajax params can be specified here
},
save: {...}, // how to save records in bulk
"delete": {...}, // how to delete records in bulk
// these properties can also be used inside load/save/delete
id: "idProp", // id property name (optional)
data: "dataProp", // data property name (array of records) (optional)
success: "successProp", // check this field for success (optional)
extra: {} // send these extra parameters
},
record: {
// record config
load: {...}, // how to load record
save: {...}, // how to save record
"delete": {...} // how to delete record
// pluse id, data, success and extra
}
});
MetaphorJs.model.Store
can be local or "remote".
var store = new MetaphorJs.model.Store({
model: { // object|model class name|model instance
// model config
}
});
// or
var store = new MetaphorJs.model.Store(url, optionalConfig);
Store instance has following methods (among others):
load(),
save(),
deleteById(),
deleteAt(),
delete(),
deleteRecords(),
loadPrevPage(),
loadNextPage(),
addPrevPage(),
addNextPage(),
shift(),
unshift(),
pop(),
addMany(),
add(),
removeAt(),
removeId(),
remove(),
insert(),
insertMany(),
replace(),
contains(),
containsId(),
getAt(),
getById(),
indexOf(),
indexOfId(),
each(),
eachId(),
collect(),
first(),
last(),
getRange(),
findBy(),
findIndexBy(),
find(),
findExact(),
findBySet(),
filter(),
clearFilter(),
sortBy(),
clearSorting()
.
The mjs-each-in-store
directive accepts stores and works with it as
mjs-each
works with arrays.
MetaphorJs supports css and javascript animations.
Apart from using MetaphorJs.animate()
directly, you add mjs-animate
attribute to the elements you want animated. This works in conjuction with other directives:
show
, hide
- used by
mjs-show
, mjs-hide
enter
, leave
- used by
mjs-if
,
mjs-each
, mjs-each-in-store
,
mjs-include
, mjs-cmp
, mjs-view
.
move
- used by mjs-each
, mjs-each-in-store
.The animation works by adding respective classes to the element
#elem.mjs-show, #elem.mjs-hide {
-webkit-transition: opacity 0.4s;
-moz-transition: opacity 0.4s;
-o-transition: opacity 0.4s;
transition: opacity 0.4s;
}
#elem.mjs-show {
opacity: 0;
}
#elem.mjs-show-active {
opacity: 1;
}
#elem.mjs-hide {
opacity: 1;
}
#elem.mjs-hide-active {
opacity: 0;
}

One special case is mjs-class
directive.
If you were to use mjs-class=".varName"
and then .varName = 'className';
,
then following classes will be used in animation:
className-add
and className-add-active
when class is being added, and
className-remove
and className-remove-active
otherwise.
Recursive rendering happens when bound value contains more bindings. For instance:

This behaviour is not enabled by default. You must add mjs-recursive
attribute
to enable it.
App's lang
property allows you to load a map of texts for using in templates.
MetaphorJs.cs.define({
$class: "MyApp",
$extends: "MetaphorJs.cmp.App",
initApp: function() {
this.lang.setLocale("en");
this.lang.load(this.langMap);
delete this.langMap;
}
}, {
resolve: {
langMap: function() {
return MetaphorJs.ajax("lang.json");
}
}
});
// data.json
{
"key1": "some text here",
"key2": "{[key1]} + more text",
"cat": ["cat", "cats"]
}

{[key2]}

{{'key2' | l}};

{{.cnt}} {[cat | p:.cnt]}

MetaphorJs's Dialog library offers lots of functionality regarding anything that should be shown and hidden such as tooltips, dialog windows, modal dialogs, etc. See demo page for examples and code samples.
There is also MetaphorJs.cmp.Dialog
class tying dialogs to normal components.
var dialog = new MetaphorJs.cmp.Dialog({
scope: currentScope,
dialogCfg: {
cls: {
dialog: "dialog"
},
position: "wc",
show: {
animate: true
},
hide: {
destroy: true
}
},
as: "dlg",
template: '
This is a dialog. close
'
});
dialog.show();
Using the library to show custom tooltips:
var tooltip = new MetaphorJs.lib.Dialog({
target: "a[data-tooltip]",
content: {
attr: "data-tooltip"
},
show: "mouseover",
hide: "mouseout",
position: {
type: "r",
offsetX: 5
},
cls: "help"
});
MetaphorJs consists of several repositories. It is written in nodejs style,
each file requiring its dependencies via
var dep = require("path/to/dep")
. There is a lot of
functions defined each in its own file. At this point the code does not work in browser.
In order for that code to work in a browser it must be built. Thats when
Builder comes in. It
parses all require
statements, puts files in the right order and converts
all the modules into var dep = something
. Builder takes its instructions
from metaphorjs.json
file. You can setup a task runner such as gulp or grunt to
watch over changes in files and rebuild MetaphorJs on every change. It is quite fast.
Personally, I use phpStorm's File Watcher.
MetaphorJs Build can build a nodejs module, amd module, encapsulated module and any of that with MetaphorJs exposed to globals and any function or class exposed as MetaphorJs.xyz. Generally, in development you would probably want to have all things exposed and on production all encapsulated.
Until the documentation is ready, you can check out metaphorjs.json
files in
all MetaphorJs repositories to learn all the options. Here is a small example though:
File structure
/metaphorjs /src ... /myproject /dist /src /func /myFunc.js /myClass.js /metaphorjs.json
metaphorjs.json
{
"build": {
"test": {
"auto": true,
"wrap": true,
"global": true,
"target": "dist/build.js",
"files": [
"../metaphorjs/src/MetaphorJs.js",
"./src/*"
],
"expose": [
"myFunc"
]
}
}
}
myFunc.js
module.exports = function() {
// do some stuff
};
myClass.js
var myFunc = require("./func/myFunc.js"),
trim = require("../../metaphorjs/src/func/trim.js");
var MyClass = function() {
};
MyClass.prototype = {
doStuff: function() {
return trim(myFunc());
}
};
module.exports = MyClass;
Result:
(function(){
"use strict";
var MetaphorJs = {};
var myFunc = function(){
// do some stuff
};
var trim = function(){...}; // code from Metaphor
var MyClass = function() {
};
MyClass.prototype = {
doStuff: function() {
return trim(myFunc());
}
};
window['MetaphorJs'] = MetaphorJs;
MetaphorJs['myFunc'] = myFunc;
}());
Having one function in one file serves several purposes:


(vii) where a decision has been taken purely on public interest, the court ordinarily should exercise judicial restraint.” Similarly reliance was also placed in Poddar Steel Corporation vs. Ganesh Engineering Works & Ors. (1991) 3 SCC 273 wherein this Court held that as a matter of general proposition it cannot be held that an authority inviting tenders is bound to give effect to every term mentioned in the notice in meticulous detail, it is not entitled to waive even a technical irregularity of little or no significance. Thus, it was held that minor technical irregularity and deviation from non-essential or ancillary/subsidiary requirement can be waived and the Government would be justified in waiving technical compliance with a tender condition.
99. The thrust of the aforesaid case law cited is to reinforce the submission that when there is substantial compliance of the terms of tender , the government is entitled to waive any non-essential term in the tender for the bona fide reasons and in public interest. In any case, since the project in terms of the RFP had to be executed through a SPV and the appellant being as such SPV, then the vehement insistence by the respondent that the lead member must be a company is not a violation of a substantial condition of the tender. In conclusion therefore it had to be held that there was no mala fide in the decision making process and the finding given by the High Court is perverse and cannot be sustained and deserves to be set aside.
100. On perusal of the background and other materials on record, it could be noticed that the genesis of restoration and conservation of Mansagar Lake goes back to 1984 whereby the efforts of the State from 1984 onwards have been directed towards restoring and developing the largest water body in Jaipur (that was lying disused the sewage, filth, stench and effluent) into an attractive public interest destination with a pleasing environmental ambience for attracting tourists from all over the world.
The figures and conclusions in the impugned order itself indicate the enormous difficulty and repetitive failures of the State Government to either implement the restoration itself or to get any private entity to do so over a period of approx. 20 years from 1984 to year 2003. Indeed, the attempts immediately preceding the present tender from year 2000 to 2002 have also admittedly failed.
Had the figures found in the impugned order or the conclusion of the impugned order that the Project proposal constituted a squandering of State largesse had been correct, applicants would have been falling over themselves to bid for the Project not only in the present tender but also in the preceding unsuccessful attempts. Even in the present case, despite the attendance of as many as 20 major participants (including corporate names like Oberoi, Taj, Ansal, Neemrama to mention a few) who admittedly attended the pre-bid meeting, no one except the SLP petitioner/appellant and three other ultimately came forward. Obviously, the proposal was ex- facie not an attractive one for potential investors, and the inescapable conclusion is that all attempts to restore the Lake and develop the area as a tourism hub had failed when the SLP Petitioner/appellant was nowhere in the picture.
101. We have further taken note of the reasons for the clear reluctance of potential investors which have been stated as follows:
The pre-existing state of the entire area of approx. 310 acres of Lake and more than 100 acres of land seemed physically irreparable which has been demonstrated by the photographs submitted [V/X]. There was no water body; the so called Lake consisted of an empty large hollow filled with sewerage stench, filth and huge sedimentation; two major nallas of the city were emptying all their sewerage and effluents in to the lake; the monument was completely dilapidated, over growth of shrubbery, and not visited by any one for decades; the nearby land was barren, filled with mud and dirt and therefore not in use.
The impugned order further appears to have ignored that the whole structure of the tender was conceptually different and had been thus in all previous attempts failed as (i) it sought huge investment by the successful bidder to restore the entire area which, at conservative estimates, would cost approx. Rs. 100 crores (in the year 2003), and now with the gross delay occasioned by the PIL Petitioner, involves an investment (approx.) Rs. 500 crores. (ii) No commercial exploitation either of the monument or of the lake was involved and indeed was not permitted. (iii) Approximately 10.5 out of 14 acres would be utilized for a walk-way around the Lake involving no commercial return. (iv) The successful bidder would pay the State Government/RTDC Rs. 2.52 crores per year which would be escalated by 10% every 3 years, which, if calculated in the 99th year of the lease would amount to Rs. 27 crores approx, and if calculated in the 50th year of the lease would amount to Rs. 12 crores approx. (v) The accommodation/resort could only be constructed within a FAR of 0.1362. Relevantly, the normal FAR permitted is 2 while the FAR permitted for the SLP Petitioner’s Project is only 0.1362. (vi) No structure in the entire project could exceed the height of 9 meters and also could not exceed more than a total of two floors viz. ground and first. (vii) Almost 12 acres of land would be devoted to a handicrafts village showcasing the cultural heritage of Rajasthan where the commercial return to the bidder would be only in the form of lease rent, and the sales occurring due to footfalls would accrue to the sub-lessee who sells the craft and not to the SLP Petitioner. (viii) The project has along gestation period not only in terms of restoration and development costs but also construction of infrastructure, and the footfalls would increase only over time after the Project has fully established its credentials. (ix) In a nutshell, therefore, huge investments-sure, certain and un-avoidable were front ended; possible returns-unsure and uncertain were back ended. (x) All the forgoing admitted points have been completely ignored in the impugned order, or not noticed or cursorily mentioned and not decided, and in any event not given adequate probative weight. (xi) Equally ignored has been the very raison-d-etre of the Project actuated by the fundamental object by the State Government to restore heritage site and to create a sustainable and pleasing environmental ambience. The lease rent model, increasing as time goes on had always been the consistent approach of the State since 1999 when restoration was first envisaged. It is inconceivable that this model could be created to assist or benefit the bidder like the SLP Petitioner who came in to the picture for the first time only in year 2003.
102. Learned Attorney General had submitted that it is an axiomatic legal principle that revenue maximization cannot and need not be the sole or even the predominant object of a State initiative. Indeed, revenue maximization as the sole object is frequently antithetical to public interest projects involving long gestation periods, a history of disuse and failure, reluctant bidders, certain and unavoidable front ended investments and highly uncertain back ended gains. As a matter of law, also as matter of business reality and commercial efficacy, it is universally recognized that even direct invitation to potential investors/bidders without any bid or auction at all is a fully valid manner of creating infrastructure where non-existed, especially in nascent areas and new areas projects. In respect of this submission reliance has been placed on (i) Natural Resources Allocation (2012) 10 SCC 1 @87 pr. 119, 120- CLC 1/153-244 @ 206; (ii) Sachidanand Pandey V. State ofWest Bengal (1987) 2 SCC 295 @ 314 p. 19, @ 264 pr. 35, @ 266 pr. 39, @ 266-67 pr. 40-41, 43;
(ii) M.P. Oil Extraction vs. State of M.P. (1997) 7 SCC 592 @ 612-613 pr 45- CLC 1/271-285 @ 284; (iv) Kasturi Lal Lakshmi Reddy v. State of Jammu Kashmir (1980 4 SCC 1 @ 13 pr. 14 – CLC 1/286-300 @ 294].
103. In fact, we have noted that there was not one but repeated attempts at tendering which had failed. While the earlier attempts failed, the present tender open to the whole world, shrunk from 20 parties to9 parties and then to only 4 parties at the time of submission of bids (whereby the SLP petitioner succeeded on merits). If the project value correctly involved 4 and 5 crore figures mentioned in the impugned order, it is inconceivable and inexplicable as to how and why neither the 20 nor the 9 nor the 3 ultimate bidders apart from the SLP Petitioner offered a maximum figure of Rs. 2.52 crores only. The bidding process was open and transparent considering tourism development.
104. We have taken note of the factual submission that the reserve figure of lease rental expected by the State had been fixed at Rs. 1 crore in the RFP [Vol 3/551 @ CL 3.2]. This was not merely an adhoc magical figure plucked out from the air but arrived at after repeated transparent evaluation by expert committees and proclaimed openly to the whole world. There is not even an allegation of surreptitious or ex-parte dealing at the stage of conceiving and designing the tender or stipulating its multiple parameters. This minimum rent had been determined with the objective of providing a rate of return of 20-22% per annum from the Project to the private sector developer. Such a rate of return was considered a reasonable return for a long term capital asset which at the end of the lease would have no terminal value for the developer, as it would require to be transferred back to RTDC who is acting on behalf of R2 [PDCOR-R6 WS in HC(B pr 6). Thus, it is evident that sufficient economic diligence were used before issuing the RFP and subsequently accepting KGK Consortium’s highest financial bid. In conclusion, therefore, it had to be held that there was no mala fide in the decision making process and the finding given by the High Court, cannot be sustained and hence deserves to be set aside.
105. On a careful analysis of the submissions of the contesting parties in the light of the materials referred to before the High Court as also this Court, we further cannot overlook the historical background and the sequence of events which led to the culmination of the project for which a lease deed was executed on 22.11.2005 and 5 to 6 years thereafter the respondents herein filed three public interest litigations which clearly fails the test of utmost good faith. It needs to be recollected from the sequence of events and the historical background related herein before that the Jal Mahal Tourism Infrastructure Project was conceived and approval was given by the Standing Committee on Infrastructure Development (for short ‘SCID’) for the first time in its third meeting held on 21.12.1999. Resolution had been filed in which it was stated that at that point of time Jaipur Municipal Corporation must own the project. Hence bids were initially invited in the year 2000-01 without identification of the land to be used and without studies with regard to Environment Impact Assessment. The bid process were therefore scrapped and JDA was made the sponsoring department for the lake side development component in the meeting of Board of Infrastructural Development and Investment Promotion (BIDI) held on 23.08.2002 and 3.9.2002. After approval, an expenditure sanction was granted by the MoEF, for the Lake Restoration Component but MoEF had clearly granted approval to the lake side development component of Mansagar Lake. It is no doubt urged on behalf of the respondent–PIL petitioner and taken note of by the High Court that the National Lake Conservation Plan did not contemplate any commercial venture upon the lake to be restored under the plan. But it cannot be overlooked that the State Government had full authority to carve out a plan for development of lake and the lake area considering the fact that way back in 1962 the lake glory as a pristine water body lasted only until the former rulers had their control over the city and unpleasant history of lake began when the new administration of Jaipur diverted walled city sewage in 1962 through two main waste water drains namely Brahmapuri and Nagtalai. It is borne out from the factual history of the lake that most notorious aquatic weed water hyacinth entered into lake in 1975 and the water fall foul population started affecting the resident and migratory species. It is in this background that the Government of Rajasthan submitted project for restoration of Mansagar Lake to the Central Government. Thereafter, Jal Mahal Tourism Infrastructure was conceived and approved by the Standing Committee on Infrastructure Development in its meeting held on 21.12.1999 and initially Jaipur Municipal Corporation was to own the project. The bids were invited in the year without identification of the land to be used and without studies with regard to the Environment Impact Assessment. Hence, the bid process was scrapped and the Jaipur Development Authority was made sponsoring department for the lake side development component in the meeting of Board of Infrastructure Development and Investment Promotion (for short ‘BIDI) held on 23.8.2002 and 3.9.2002. Hence the Project Development Corporation of Rajasthan (for short ‘PDCOR’) got a detailed project report prepared which contemplated the following components:
(1) Restoration of Mansagar Lake;
(2) Restoration and re-use of Jal Mahal Monument; (3) Development of Tourism/Recreational components at the lake precincts.
106. Thereafter, in the meeting of BIDI held on 9.08.2003, it was decided that nodal agency for the Jal Mahal Tourism Project will be Tourism Department of Government of Rajasthan instead of JDA. Thereafter, the tourism department assigned the responsibility to the Rajasthan Tourism Development Corporation (for short ‘RTDC’) vide order dated 6.9.2003. The last date for submission of deed was 5.9.2003. The petitioner on the other hand and also the Attorney General clarified that the need to issue office memorandum dated 24.5.2011 was felt because OM dated 28.4.2011 in broad terms provided that category B projects that fell within 10 KM of notified critically polluted areas would be treated as category A and general condition would be applicable to such projects. MoEF in order to clarify OM dated 28.4.2011 issued OM dated 24.5.2011 that expressly provided that the projects falling under Items 8 (a) and/or 8 (b) do not attract general condition.
107. On an analysis of the aforesaid aspects, it is clear that the project that was conceived, deliberated and given effect to emerged from the status of the land adjoining the lake area which had a history behind it and in view of the garbage, filth stench on the area, decision had been taken to develop the two project site.
108. We have further taken note of the arguments advanced by the Ld. Attorney General who had submitted that the High Court has not taken into account the steps that were taken in the project since 1998 onwards. The Ld. Attorney General representing the State had relied on a comprehensive list of dates beginning from 1984 onwards discussed hereinbefore to show the step by step decision taken before the project was awarded to the KGK Consortium including the Jaipur Master Plan of 2011.
109. It may further be noted that the argument advanced by the counsel for the respondent PIL Petitioner that 100 acres land lease to the petitioner was part of the lakebed, does not get supported from the revenue entries placed on record or any other material which makes it clear and establishes that only 13 bighas 17 biswas is classified as ‘gairmumkin talab’ (lakebed) being khasra No. 67 /317 which would be approximately 8.65 acres. However, the balance land that is 100 acres less 8.65 acres is in fact recorded as ‘Banjar’ in the revenue record and not lakebed. We find sufficient substance in the plea that this Court in the past have placed reliance on revenue entries to determine the nature of land from which it follows that based on the revenue entries, no other khasra of land forming part of 100 acres of land leased to the petitioner is lakebed. It may further be noted that as per the petitioners/appellants 14.15 acres of land is ‘banjar’ and not lakebed whereas according to the PIL petitioner it is a lakebed/wetland which is contrary to the revenue record.
110. From the version and counter version of the counsel for the parties, it is obvious that although the PIL petitioners had challenged the 100 acre land as lakebed so as to assail that the same could not have been a part of the lease area, the fact remains that the entire emphasis is only in regard to the land comprising 14.15 acres equivalent to 22 bighas and 10 biswas and another chunk comprising 8.65 acres equivalent to 13 bighas and 17 biswas. The counsel for the appellant-lessee submitted that if the revenue record for 13 bighas 17 biswas equivalent to 8.65 acres noted as ‘gairmumkin talab’ lakebed bearing khasra No. 67/317 is relied upon by the Court, then further revenue entries classifying 14.15 acres of land recorded as barren land/banjar also should be accepted, adopting the view taken in the matter of Okhla Bird Sanctuary case (Supra) that revenue entries are fit to be relied upon in order to determine the nature and character of the land.
111. However, we are of the view that in order to avoid this controversy in regard to these two chunks of lands as to whether the same form parts of the lakebed or not, it would be just and appropriate to slash this part of the land from the lease hold area as per clause 18.4 of the lease deed itself implying that these two areas shall not form part of the lease hold area so as to be given out on lease to the petitioner/appellant. In view of this 13 bigas and 17 biswas of land equivalent to 8.65 acres which has been classified as ‘gairmumkin talab’/ bearing khasra no. 67/317 shall not be treated as a part of the lease hold area and the same shall be within the control and domain of the Government of Rajasthan which will be free to reconvert this area into the lake area.
112. In so far as 14.15 acres of land recorded as barren land/banjar is concerned, we are pleased to hold that this area shall be treated as a construction free zone and neither party i.e. the State of Rajasthan nor the lessee/appellant herein shall be permitted to raise any construction thereon. We are informed that this area is being used as a public promenade (walk way) for the use of the public which shall be allowed to continue.
113. In so far as the balance area of land pertaining to the lease deed is concerned, we are pleased to hold that the respondents/PIL petitioners have not been able to lead any iota of evidence or material to prove that this area was at all or at any point of time lakebed or wetland. This fact is further proved from the historical background of this litigation as it is the case of the appellant/lessee/ the PIL petitioner which gets reinforced from the record and the detailed project report of the PDCOR indicating that the efforts were being made to develop this land way back from 1984 and in the year 1999 as already noted hereinbefore reflected from the minutes of the third meeting held on 21.12.1999, the Standing Committee on Infrastructure Development (SCID) agreed that the Jaipur Municipal Corporation must own the project to develop this land and the bids were invited in the year 2000-01 with regard to the development of the land. However, the same was scrapped and the JDA was made the sponsoring department for the lake side development component in the meeting of the board of infrastructure development and investment promotion held on 23.8.2002 and 3.9.2002.
114. From the aforesaid history, it gets factually established that this land in any view was available for development atleast way back from 21.12.1999 and no question was ever raised that this was not available for infrastructural development. In fact, we have further noted that in the three Master Plans of Jaipur, 200 acres of land were shown for infrastructural development for tourism purpose and out of that 100 acres was made a part of the lease deed after extensive research conducted by the Project Development Corporation of Rajasthan which got detailed project report prepared way back in 2001 when the petitioner/appellant was not even in the picture so as to develop the land. Even if the Ministry of Environment and Forest of the Central Government did not accept the position that it had given clearance for this project, the fact remains that the land was lying within the domain of the State Government due to which it had full administrative discretion to take a decision in regard to development of the land and it is not that it was done in a huff or hurry without deliberation or study. In fact the Project Development Corporation (PDCOR) got the detailed project report prepared way back in 2001 and thereafter in 2003, steps for inviting tender were taken by the PIL petitioners. If at all the bonafide of the respondent/PIL petitioners were clear, they ought to have assailed the invitation of tender which finally got executed only in the year 2005.
115. Thus, from the year 2001 when detailed project report was prepared, decision to award tender was taken, ‘Expression of Interest’ invitation of tender and bid was invited and accepted, the PIL petitioners never ever challenged these activities on the part of the State which was approved, accepted and continued by the successive Governments which were ruling in the State of Rajasthan. Thus, the submission of the counsel for the appellant that the PIL lacks bonafide and good faith cannot be brushed aside totally although the same has neither been a reason with the High Court nor with us to reject the petition as we have ignored the delay and also lack of bonafide on the part of the PIL petitioners/respondents herein and have examined the matter on merit taking note of every meticulous argument and counter argument advanced by the contesting parties.
116. From this, it is clear that although the Courts are expected very often to enter into the technical and administrative aspects of the matter, it has its own limitations and in consonance with the theory and principle of separation of powers, reliance at least to some extent to the decisions of the State Authorities specially if it based on the opinion of the experts reflected from the project report prepared by the technocrats, accepted by the entire hierarchy of the State administration, acknowledged, accepted and approved by one Government after the other, will have to be given due credence and weightage. In spite of this if the Court chooses to overrule the correctness of such administrative decision and merits of the view of the entire body including the administrative, technical and financial experts by taking note of hair splitting submissions at the instance of a PIL petitioner without any evidence in support thereof, the PIL petitioners shall have to be put to strict proof and cannot be allowed to function as an extraordinary and extra judicial ombudsmen questioning the entire exercise undertaken by an extensive body which include administrators, technocrats and financial experts. In our considered view, this might lead to a friction if not collision among the three organs of the State and would affect the principle of governance ingrained in the theory of separation of powers. In fact, this Court in the matter of M.P. Oil Extraction v. State of M.P., (1997 7 SCC 592 at page 592) has unequivocally observed that the power of judicial review of the executive and legislative action must be kept within the bounds of constitutional scheme so that there may not be any occasion to entertain misgivings about the role of judiciary in outstepping its limit by unwarranted judicial activism being very often talked of in these days. The democratic, set-up to which polity is so deeply committed cannot function properly unless each of three organs appreciate the need for mutual respect and supremacy in their respective fields.
117. However, we hasten to add and do not wish to be misunderstood so as to infer that howsoever gross or abusive may be an administrative action or a decision which is writ large on a particular activity at the instance of the State or any other authority connected with it, the Court should remain a passive, inactive and a silent spectator. What is sought to be emphasized is that there has to be a boundary line or the proverbial ‘laxman rekha’ while examining the correctness of an administrative decision taken by the State or a Central Authority after due deliberation and diligence which do not reflect arbitrariness or illegality in its decision and execution. If such equilibrium in the matter of governance gets disturbed, development is bound to be slowed down and disturbed specially in an age of economic liberalization wherein global players are also involved as per policy decision.
118. In a matter of the instant nature, where the policy decision was taken way back from 1976 followed by Master Plans to develop a particular chunk of land by adopting the mode of private/public partnership method and a global tender was floated, obviously the private players were bound to participate specially in an age when private partnership is not an anathema. In that view of the matter when a particular policy decision was taken to develop a particular project supported by extensive research and study by the experts in the field who prepared the project report relying upon the three successive Master Plans of the city of Jaipur and the global tender was floated for development of land for tourism adjoining the lake area, entertaining PIL petition on the ground that the area in question is a wet land without substantiating the same in any manner, i.e. neither from the revenue record nor any other material, the perception of PIL Petitioners without factual basis cannot be allowed to prevail over the decision of the entire group of experts which was finally accepted by the State Government through the Project Development Report of a State Agency which got the detailed project report (DPR) prepared and nothing could be brought to the notice of the Court that the DPR was not fit to be relied upon or that it was prepared in a clandestine manner. In our considered view unless the Detailed Project Report, Master Plan of Jaipur, Revenue Record indicating the nature of land that the project was fraught with risk of environmental degradation which could establish with facts & figures that the decision is not in public interest, interference by the Court adopting an over all view smelling foul play at every level of administration is bound to make the governance an impossibility. Therefore, the courts although would be justified in questioning a particular decision if illegality or arbitrariness is writ large on a particular venture, excessive probe or restraint on the activity of a State is bound to derail execution of an administrative decision even though the same might be in pursuance of a policy decision supported by other cogent materials like survey and search by the reliable Expert Agency of a State after which the State Project or private and public partnership project is sought to be given effect to.
119. At this juncture, we take note of two overriding considerations which combined, narrow the scope of review. The first is that of deference to the views of administrative experts and the other we take assistance from the words of Chief Justice Neely who expressed as follows:
“I have very few illusions about my own limitations as a judge and from those limitations I generalise to the inherent limitations of all appellate courts reviewing rare cases.” The learned Chief Justice further observed as follows:
“I am not an accountant, electrical engineer, financier, banker, stock broker, or systems management analyst. It is the height of folly to expect judges intelligently to review a5000 page record addressing the intricacies of public utility operation.
It is not the function of a judge to act as a super board, or with the zeal of a pedantic schoolmaster substituting its judgment for that of the administrator. The result is a theory of review that limits the extent to which the discretion of the expert may be scrutinized by the non-expert judge. It was suggested that the alternative for the court is to desist itself from interference on technical matters, where all the advantages of expertise lie with the agencies. If the court were to review fully the decision of an expert body such as State Board of Medical Examiners, ‘it would find itself wandering amid the maze of therapeutics or boggling at the mysteries of the pharmacopoeia’.”
120. Bearing the aforesaid aspects in mind, we are prone to infer that the disputed area of the lease deed borne out from the revenue record is clearly confined to14.15 acres plus 8.65 acres and the balance area of the lease deed could not have been interfered with so as to set aside the entire project.
121. However, we have noted that the period of the lease deed had been finally fixed as 99 years which in our view could not have been done by the State Government as that clearly converts the lease deed into a perpetual lease. In fact we have noted that when the tender was floated for granting the lease deed, the maximum period for the lease deed as per the Rule could not have been more than 30 years yet the tender was floated for a period of 60 years which was later extended to 99 years. This in our view could not have been done by the State Government as one can infer even at a glance that the same being contrary to the rules, could not have granted it for a period of 99 years.
122. We, therefore, set aside the period of lease which has been granted in favour of the appellant for a period of 99 years and the same shall stand reduced to a period of 30 years only which could be the maximum period of the lease for the land under the rules which should start ordinarily from the date of its execution so as to expire on or before the period of 30 years. But we are conscious of the fact that much time has lapsed after execution of the lease deed in 2005 due to which only Phase-I of the project could start after which it got stuck and the project is in a state of limbo due to delay on account of the litigation started at the behest of the respondent/PIL petitioners who questioned the validity of the lease deed executed and finally succeeded in getting it set aside. We are, therefore, of the view that the lease deed which could not be made effective in view of the intervening litigation due to which the Project got delayed, it is legally just and appropriate to direct that the period of 30 years of the lease shall now be counted from the date of this judgment and order.
123. We are further of the view that on or after expiry of 30 years to be counted from the date of this judgment and order, if for any reason whatsoever the lease deed is not renewed in favour of the lessee/appellant or the appellant chooses not to seek its renewal, the appellant shall be adequately compensated for the property and structure which stands developed at the instance of the appellant during the period when the lease subsisted in its favour. Subsequently, however, as to what would be the adequate period of lease to be granted in favour of the existing or a new lessee obviously would be determined by the State Government at the relevant time but in so far as the instant lease deed is concerned, the existing period of 99 years shall stand decreased to 30 years to be counted from the date of judgment and order of this Court.
124. Thus the lease deed although was executed for a period of 99 years shall pursuant to this decision, run for a period of 30 years which shall commence from the date of this judgment and order and may be extended by the State Government for such other period as may be considered legally viable based on the rules and regulations at the relevant period. We further add in the interest of justice, that after expiry of 30 years of lease period and in case the lease deed is not renewed in favour of the appellant, the State Government shall compensate the appellants at the market value of the project including compensation for the loss of business and profit. It is clarified that in the event of any dispute arising with respect to quantum of compensation, it may be resolved by availing the remedy of arbitration mechanism provided in the lease deed.
125. We are informed that the first phase of the Project has been completed since February, 2011. It is therefore directed that the completion certificate and the lease agreement for the first phase be issued expeditiously but not later than a period of 30 days from the date of receipt of this order. Accordingly, the State Government shall issue the restoration completion certificate for Phase I to enable the Project alongwith the Jal Mahal Monument as per the Lease Deed, to open for entry and visit of the members of the public. Upon issuance of the phase–I certificate, the project developer/lessee/appellant shall be allowed to undertake the construction as per the approved plan in terms of the lease deed.
126. We further hold that the area of 8.65 acres equivalent to 13 bighas and 17 biswas shall not form part of the lease hold area as already stated hereinabove and the same shall stand re-transferred to the Government of Rajasthan which shall be recarved and added to the lake area and the same shall be maintained by the competent authorities of the State. However, the area of 14.15 acres equivalent to 22 bighas and 17 biswas although shall be notionally treated as part of the lease deed, the said area shall be treated as a construction free zone which will be allowed to be used as a walkway/ the public promenade free of any charge at the instance of the lessor and the lessee. Remaining portion of the land forming part of the lease deed shall remain intact to be used by the appellant as per the terms and conditions of the lease deed already executed. However by way of abundant caution, we clarify that Mansagar Lake Restoration Project if undertaken by the State or the Ministry of Environment, the same shall not get affected by virtue of the lease deed in any manner.
127. It is further held that since the land which is a part of the lease hold area barring 2 chunks viz. 8.65 acres equivalent to 13 Bighas 17 Biswas of land and 14.15 acres of land approximately 22 Bighas 10 Biswas, in all 35 bighas and 27 biswas equivalent to 22.80 acres, the Wetland Rules of 2010 shall not apply to the project since environment clearance had already been issued under PIA 2006 prior to commencement of the project. In any view the lease hold area barring the land equivalent to 35 bighas and 27 biswas having not been held as wetland or lakebed as per the revenue record as also the fact that it was available for development way back from 1982 which gets established from the various Master Plans of Jaipur and the historical background referred to hereinbefore, no dispute relating to application of the Wetland Rules 2010 shall be allowed to be raised hereinafter with retrospective effect in regard to the lease hold area of the land which has been granted for development of the project and could not be proved to be wetland barring 22.80 acres equivalent to 35 bighas and 17 biswas. It is further clear by now that the project comprising the lease hold land is not in conflict with the development of lake area or Jal Mahal monument so as to raise issues or concern regarding the lake area or environment degradation as restoration and maintenance of Jal Mahal cannot possibly disturb the monument or lead to environmental degradation. In any view, the dispute being confined to the lease hold area for development of the project which we have now resolved, we direct that the appellant/lessee shall be entitled to re-start the project forthwith subject to what we have recorded hereinbefore.
128. The judgment and order of the High Court thus stands quashed and set aside to the extent by which the lease deed has been cancelled except an area of 13 bighas 17 biswas equivalent to 8.65 acres and the balance disputed area claimed to be lake bed comprising 14.15 acres shall be notionally treated as part of the lease deed but the same shall remain a construction free zone where neither the State Government of Rajasthan nor the appellant-lessee/Jal Mahal Resorts Pvt. Ltd. shall have the right to raise any construction on this area as the same shall remain exclusively for the use of public promenade / walkway free of charge.
129. In view of the analysis made hereinbefore, these appeals stand partly allowed to the extent indicated hereinabove but in the circumstance, the parties are directed to bear their own costs.
………………………………….J.
(GYAN SUDHA MISRA) ………………………………….J.
(PINAKI CHANDRA GHOSE) New Delhi;
April 25, 2014
-----------------------
130