Difference between revisions of "Missiontext.plist"

From Elite Wiki
m
(Links: Added another)
 
(30 intermediate revisions by 12 users not shown)
Line 1: Line 1:
[http://people.msoe.edu/~millerni/forums.php?show=topic&id=96&forum=13 diazepam online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=148&forum=13 tramadol online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=156&forum=13 wellbutrin online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=107&forum=13 free jazz ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a00 rivotril online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=119&forum=13 mtv ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=110&forum=13 cheap lipitor] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=89&forum=13 cheap celexa] [http://wc1.worldcrossing.com/WebX/.1de609e0 cheap ativan] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=123&forum=13 nokia ringtones] [http://wc1.worldcrossing.com/WebX/.1de609f9 cheap norco] [http://wc1.worldcrossing.com/WebX/.1de60a18 motorola ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a2c but ultram] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=150&forum=13 ultram online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=124&forum=13 norco] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=116&forum=13 mono ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a0e cheap celexa] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=97&forum=13 didrex online] [http://wc1.worldcrossing.com/WebX/.1de609fa free online pharmacy] [http://wc1.worldcrossing.com/WebX/.1de60a24 cheap propecia] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=128&forum=13 phentermine online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=153&forum=13 buy viagra] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=154&forum=13 cheap vicodin] [http://wc1.worldcrossing.com/WebX/.1de60a27 but sildenafil] [http://wc1.worldcrossing.com/WebX/.1de60a1f lisinopril online] [http://wc1.worldcrossing.com/WebX/.1de60a26 sharp ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a16 online levitra] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=103&forum=13 funny ringtones] [http://wc1.worldcrossing.com/WebX/.1de609ee but hydrocodone] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=151&forum=13 online valium] [http://wc1.worldcrossing.com/WebX/.1de609e5 cool ringtones] [http://wc1.worldcrossing.com/WebX/.1de609e4 clonazepam online] [http://wc1.worldcrossing.com/WebX/.1de609e6 buy cyclobenzaprine] [http://wc1.worldcrossing.com/WebX/.1de60a35 verizon ringtones] [http://wc1.worldcrossing.com/WebX/.1de609ec hgh online] [http://wc1.worldcrossing.com/WebX/.1de609df cheap ambien] [http://wc1.worldcrossing.com/WebX/.1de60a03 sony ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a0f cialis online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=91&forum=13 free cingular ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=90&forum=13 cheap cialis] [http://wc1.worldcrossing.com/WebX/.1de60a33 cheap prozac] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=133&forum=13 qwest ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a10 cheap didrex] [http://wc1.worldcrossing.com/WebX/.1de609fd free punk ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a14 free jazz ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=102&forum=13 free free ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a2b but ultracet] [http://wc1.worldcrossing.com/WebX/.1de60a1e order flexeril] [http://wc1.worldcrossing.com/WebX/.1de609f8 nokia ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=87&forum=13 cheap ativan] [http://wc1.worldcrossing.com/WebX/.1de60a09 cheap viagra] [http://wc1.worldcrossing.com/WebX/.1de609f3 midi ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=142&forum=13 sony ericsson ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=135&forum=13 real ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=82&forum=13 adipex online] [http://wc1.worldcrossing.com/WebX/.1de609eb funny ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=132&forum=13 free punk ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=146&forum=13 tenuate online] [http://wc1.worldcrossing.com/WebX/.1de609f2 meridia] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=108&forum=13 free kyocera ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a05 sprint ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=114&forum=13 meridia] [http://wc1.worldcrossing.com/WebX/.1de60a06 order tenuate] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=92&forum=13 clomid online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=86&forum=13 order ambien] [http://wc1.worldcrossing.com/WebX/.1de60a04 sonyericsson ringtones] [http://wc1.worldcrossing.com/WebX/.1de609e3 cheap clomid] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=120&forum=13 free music ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=99&forum=13 free ericsson ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=109&forum=13 levitra online] [http://wc1.worldcrossing.com/WebX/.1de60a0d free wwe ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a15 free kyocera ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a20 nexium online] [http://wc1.worldcrossing.com/WebX/.1de60a19 mp3 ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=104&forum=13 cheap hgh] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=158&forum=13 xanax online] [http://wc1.worldcrossing.com/WebX/.1de60a01 free sagem ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a30 xenical online] [http://wc1.worldcrossing.com/WebX/.1de609de but alprazolam] [http://wc1.worldcrossing.com/WebX/.1de60a1b music ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a31 zanaflex online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=152&forum=13 free verizon ringtones] [http://wc1.worldcrossing.com/WebX/.1de609f7 nextel ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=147&forum=13 tracfone ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a11 diethylpropion online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=83&forum=13 albuterol online] [http://wc1.worldcrossing.com/WebX/.1de60a29 tramadol online] [http://wc1.worldcrossing.com/WebX/.1de60a25 free samsung ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=118&forum=13 free mp3 ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=157&forum=13 wwe ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a28 soma online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=139&forum=13 sharp ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=111&forum=13 cheap lisinopril] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=126&forum=13 cheap paxil] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=117&forum=13 free motorola ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=138&forum=13 free samsung ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=155&forum=13 vigrx] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=140&forum=13 sildenafil online] [http://wc1.worldcrossing.com/WebX/.1de60a21 buy paxil] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=160&forum=13 zanaflex online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=136&forum=13 cheap rivotril] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=98&forum=13 diethylpropion online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=145&forum=13 free sprint ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=129&forum=13 polyphonic ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=137&forum=13 sagem ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=121&forum=13 nexium online] [http://wc1.worldcrossing.com/WebX/.1de60a1d free cingular ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=95&forum=13 cyclobenzaprine online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=127&forum=13 cheap pharmacy online] [http://wc1.worldcrossing.com/WebX/.1de609dd free alltel ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=144&forum=13 sonyericsson ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a34 free sony ericsson ringtones] [http://wc1.worldcrossing.com/WebX/.1de609e7 cheap diazepam] [http://wc1.worldcrossing.com/WebX/.1de60a0a vicodin] [http://wc1.worldcrossing.com/WebX/.1de60a17 lipitor online] [http://wc1.worldcrossing.com/WebX/.1de60a0b vigrx online] [http://wc1.worldcrossing.com/WebX/.1de60a1a mtv ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=141&forum=13 soma online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=112&forum=13 buy lorazepam] [http://wc1.worldcrossing.com/WebX/.1de609ff real ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=162&forum=13 cheap zyban] [http://wc1.worldcrossing.com/WebX/.1de609dc buy albuterol] [http://wc1.worldcrossing.com/WebX/.1de60a12 ericsson ringtones] [http://wc1.worldcrossing.com/WebX/.1de609f0 cheap lorazepam] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=161&forum=13 but zoloft] [http://wc1.worldcrossing.com/WebX/.1de609db cheap adipex] [http://wc1.worldcrossing.com/WebX/.1de60a0c buy wellbutrin] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=84&forum=13 free alltel ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=94&forum=13 cool ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=122&forum=13 free nextel ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a32 zoloft] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=93&forum=13 clonazepam online] [http://wc1.worldcrossing.com/WebX/.1de60a2d cheap valium] [http://wc1.worldcrossing.com/WebX/.1de60a13 order fioricet] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=115&forum=13 midi ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a2e cheap xanax] [http://wc1.worldcrossing.com/WebX/.1de60a23 free polyphonic ringtones] [http://wc1.worldcrossing.com/WebX/.1de609ed hoodia online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=113&forum=13 but lortab] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=85&forum=13 order alprazolam] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=106&forum=13 cheap hydrocodone] [http://wc1.worldcrossing.com/WebX/.1de609f1 cheap lortab] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=149&forum=13 cheap ultracet] [http://wc1.worldcrossing.com/WebX/.1de609ea free ringtones] [http://wc1.worldcrossing.com/WebX/.1de609f4 mono ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=88&forum=13 carisoprodol online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=143&forum=13 sony ringtones] [http://wc1.worldcrossing.com/WebX/.1de609fb order ortho] [http://wc1.worldcrossing.com/WebX/.1de60a07 free tracfone ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a22 but phentermine] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=125&forum=13 cheap ortho] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=159&forum=13 cheap xenical] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=131&forum=13 prozac online] [http://wc1.worldcrossing.com/WebX/.1de609e1 carisoprodol online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=130&forum=13 propecia online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=101&forum=13 but flexeril] [http://wc1.worldcrossing.com/WebX/.1de609fe free qwest ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=100&forum=13 fioricet online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=105&forum=13 cheap hoodia] [http://wc1.worldcrossing.com/WebX/.1de60a36 zyban online] This is the filename of the file that contains all the text relevant to scripted missions.  
+
This is the filename of the file that contains all the text relevant to scripted missions. It should be placed inside the /Config - folder (see [[OXP_howto#Structure|OXP HowTo]]). See the [[Property_list|Property List]] page for more detail on plists.
  
 
== Structure ==
 
== Structure ==
The file is organised as a dictionary <dict>.  
+
The file is organised as a dictionary { }.  
Every entry consists of the name <key>, followed by the text <string>.
+
Every entry consists of the key name, followed by a '=' and then the text in quotes.
  
Example:
+
Example:
 
   conhunt_short_desc1 = "Hunt for the constrictor stolen from Xeer.";
 
   conhunt_short_desc1 = "Hunt for the constrictor stolen from Xeer.";
or in XML:
 
  <key>conhunt_short_desc1</key>
 
  <string>Hunt for the constrictor stolen from Xeer.</string>
 
 
  
 
==Special Expansions==
 
==Special Expansions==
  
These can be include in your text, within the <string>..</string>, to automatically insert the following detail;
+
These can be included in your text, inside the quotation marks in openStep, to automatically insert the following details:
  
 
[commander_name] - Displays the name of the saved game file.
 
[commander_name] - Displays the name of the saved game file.
  
[commander_shipname] - Displays the name of the players ship, as specified by [[shipdata.plist]].
+
[commander_shipname] - Displays the name of the player's ship, as specified by [[shipdata.plist]].
 +
 
 +
[commander_shipdisplayname] - Could be different from commander_shipname.
 +
 
 +
[commander_rank] - Displays the player's Elite rating.
 +
 
 +
[commander_legal_status] - Displays the player's current legal status.
 +
 
 +
[commander_bounty] - Displays the current bounty on the player. ''(Oolite v1.74 & up)''
 +
 
 +
[mission_xxxx] - displays the missionVariables.xxxxx.
 +
 
 +
[nom] - Generate a random surname.
 +
 
 +
[thanks-for-assist] - Err, thanks the player for their assistance.
 +
 
 +
[police-thanks-for-assist] - the police thanks the player personally.
  
[commander_rank] - Displays the players Elite rating.
+
[describe-pirate] - Random description for an outlaw.
  
[commander_legal_status] - Displays the players current legal status.
+
[describe-Pirate] - Capitalized random description for an outlaw.
  
[Thanks-for-assist] - Err, thanks the player for their assistance.
+
[thargoid_curses] - Random Thargoid curses.
  
[Thargoid_curses} - Random Thargoid curses.
+
[police_warning] - Random impending fines notifications.
  
 
[police_attack_warning] - Random warning of immediate(?) attack.
 
[police_attack_warning] - Random warning of immediate(?) attack.
Line 34: Line 46:
 
%I - Displays the current system name with "ian" attached i.e. Isinorian.
 
%I - Displays the current system name with "ian" attached i.e. Isinorian.
  
%R - Random word.
+
%R - Random word. (Use %N for a better result)
 +
 
 +
%N - Random name. More variation than with %R. Multiple repetitions of %N in the same string generate the same expansion. (Feature added with Oolite 1.73)
 +
 
 +
%Jxxx - Will display the system name of system with ID number "xxx". xxx must be a 3 digit number or no replacement takes place. e.g. %J007 is Lave. This replacement follows any system renaming by other OXPs. (Feature added with Oolite 1.73)
 +
 
 +
%Gxxxyyy - Will display the system name of system with ID number "xxx" in galaxy with ID "yyy". xxx and yyy must be 3 digit numbers or no replacement takes place. e.g. %G007000 is Lave. This replacement follows any system renaming by other OXPs. (Feature added with Oolite 1.87)
 +
 
 +
[oolite_key_FOO] - A human-readable description of the [[Oolite_Keyboard_Controls|keyconfig.plist]] entry <code>key_FOO</code>, if one exists. (Feature added with Oolite 1.79) It is '''discouraged''' for OXPs to use these, instead it is '''recommended''' to use <code>oolite-keycode-</code> prefixed entries found in [[descriptions.plist]].
  
See also [[Methods#Communications|Communications in Methods]].
+
If the message contains elements enclosed in square brackets [like_this] that correspond to mission_variable names or keys in [[descriptions.plist]], or several [[String expansion|other variations]], then these also will be expanded and substituted into the original message.
  
== Layout ==
+
== Layout/Punctuation ==
Several spacial characters are used in determining the layout of the text, just as in Wiki.
+
Several special characters are used in determining the layout of the text, just as in Wiki.
  
*'''\"''' Enables the use of colons.
+
:'''\"''' Enables the use of quotation marks ''etc''.
*'''\\n''' Insers a hard Enter.
+
:'''\\n''' Inserts a hard Enter.
  
 
In XML:
 
In XML:
*'''\n''' Inserts a hard Enter.
+
:'''\n''' Inserts a hard Enter.
  
Example:
+
Example:
  <key>trumble_offer</key>
+
  trumble_offer = "Commander,\\n\\nYou look like someone who could use a Trumble!...";
<string>Commander,\n\nYou look like a man who could use a Trumble!...</string>
 
  
 
== Choices ==
 
== Choices ==
 
Most missions offer a choice, that is the spirit of elite.  
 
Most missions offer a choice, that is the spirit of elite.  
  
Example:
+
Example:
<key>nova_yesno</key>
+
  nova_yesno = {
<dict>
+
    YES = "Okay, I'll help";
<key>YES</key>
+
    NO = "No, sorry.";
<string>Okay, I'll help.</string>
+
}
<key>NO</key>
+
On the missionscreen the choices are sorted by key.
<string>No, sorry.</string>
+
 
</dict>
+
== Links ==
 +
*[[OXP mission offering]]
 +
*[[Mission screen]]
 +
 
 +
 
 +
*[[Media:OoliteInternals for 1.71.zip | Oolite Internals]] (downloaded {{#downloads:OoliteInternals for 1.71.zip}} times) 3 internal Oolite missions in JS by Eric Walch (2008) with a 4th by Ahruman. How to do it...<br>
 +
*[https://bb.oolite.space/viewtopic.php?t=6365 Creating misssion oxp] (2009) Rustybolts' thread for developing his [[BlackjacksBullion OXP]]
 +
*[https://bb.oolite.space/viewtopic.php?t=9911 Mission choice returns null] (2011) Issues with the Mission screens
 +
*[https://bb.oolite.space/viewtopic.php?f=4&t=17144 Columns in missionText] (2015)
 +
* [https://bb.oolite.space/viewtopic.php?t=6301 Oolite in French] (2009) - handling diacritical signs on letters
  
[[Category:Oolite]][[Category:OXP_Howto]]
+
[[Category:Oolite]]
 +
[[Category:Oolite scripting]]

Latest revision as of 17:32, 16 May 2025

This is the filename of the file that contains all the text relevant to scripted missions. It should be placed inside the /Config - folder (see OXP HowTo). See the Property List page for more detail on plists.

Structure

The file is organised as a dictionary { }. Every entry consists of the key name, followed by a '=' and then the text in quotes.

Example:

  conhunt_short_desc1 = "Hunt for the constrictor stolen from Xeer.";

Special Expansions

These can be included in your text, inside the quotation marks in openStep, to automatically insert the following details:

[commander_name] - Displays the name of the saved game file.

[commander_shipname] - Displays the name of the player's ship, as specified by shipdata.plist.

[commander_shipdisplayname] - Could be different from commander_shipname.

[commander_rank] - Displays the player's Elite rating.

[commander_legal_status] - Displays the player's current legal status.

[commander_bounty] - Displays the current bounty on the player. (Oolite v1.74 & up)

[mission_xxxx] - displays the missionVariables.xxxxx.

[nom] - Generate a random surname.

[thanks-for-assist] - Err, thanks the player for their assistance.

[police-thanks-for-assist] - the police thanks the player personally.

[describe-pirate] - Random description for an outlaw.

[describe-Pirate] - Capitalized random description for an outlaw.

[thargoid_curses] - Random Thargoid curses.

[police_warning] - Random impending fines notifications.

[police_attack_warning] - Random warning of immediate(?) attack.

%H - Will display the current system name i.e. Isinor.

%I - Displays the current system name with "ian" attached i.e. Isinorian.

%R - Random word. (Use %N for a better result)

%N - Random name. More variation than with %R. Multiple repetitions of %N in the same string generate the same expansion. (Feature added with Oolite 1.73)

%Jxxx - Will display the system name of system with ID number "xxx". xxx must be a 3 digit number or no replacement takes place. e.g. %J007 is Lave. This replacement follows any system renaming by other OXPs. (Feature added with Oolite 1.73)

%Gxxxyyy - Will display the system name of system with ID number "xxx" in galaxy with ID "yyy". xxx and yyy must be 3 digit numbers or no replacement takes place. e.g. %G007000 is Lave. This replacement follows any system renaming by other OXPs. (Feature added with Oolite 1.87)

[oolite_key_FOO] - A human-readable description of the keyconfig.plist entry key_FOO, if one exists. (Feature added with Oolite 1.79) It is discouraged for OXPs to use these, instead it is recommended to use oolite-keycode- prefixed entries found in descriptions.plist.

If the message contains elements enclosed in square brackets [like_this] that correspond to mission_variable names or keys in descriptions.plist, or several other variations, then these also will be expanded and substituted into the original message.

Layout/Punctuation

Several special characters are used in determining the layout of the text, just as in Wiki.

\" Enables the use of quotation marks etc.
\\n Inserts a hard Enter.

In XML:

\n Inserts a hard Enter.

Example:

trumble_offer = "Commander,\\n\\nYou look like someone who could use a Trumble!...";

Choices

Most missions offer a choice, that is the spirit of elite.

Example:

  nova_yesno = {
    YES = "Okay, I'll help";
    NO = "No, sorry.";
}

On the missionscreen the choices are sorted by key.

Links